Merge branch 'master' of https://github.com/cabo/cn-cbor
# By Carsten Bormann
# Via Carsten Bormann
* 'master' of https://github.com/cabo/cn-cbor:
... but keep -Os in default. Check in the cases.cbor actually expected by expected.out in testing.
# Conflicts:
# Makefile
diff --git a/Makefile b/Makefile
index d3ee77a..554c767 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# enable this for armv7 builds, lazily using iPhone SDK
#CFLAGS = -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/include -arch armv7 -Os
-CFLAGS = -Os
+CFLAGS = -Os -Wall -Wextra -Wno-unknown-pragmas -Werror-implicit-function-declaration -Werror -Wno-unused-parameter -Wdeclaration-after-statement -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
all: cntest
@@ -9,7 +9,7 @@
-diff new.out expected.out
cntest: test.c cbor.h cn-cbor.h cn-cbor.c
- clang cn-cbor.c test.c -o cntest
+ clang $(CFLAGS) cn-cbor.c test.c -o cntest
size: cn-cbor.o
size cn-cbor.o
diff --git a/cn-cbor.c b/cn-cbor.c
index 9e3e814..23448cd 100644
--- a/cn-cbor.c
+++ b/cn-cbor.c
@@ -75,8 +75,8 @@
};
#define TAKE(pos, ebuf, n, stmt) \
- if (n > (ebuf - pos)) \
- CN_CBOR_FAIL(CN_CBOR_ERR_OUT_OF_DATA); \
+ if (n > (unsigned)(ebuf - pos)) \
+ CN_CBOR_FAIL(CN_CBOR_ERR_OUT_OF_DATA); \
stmt; \
pos += n;
@@ -119,10 +119,6 @@
parent->last_child = cb;
parent->length++;
- cn_cbor *it;
- cn_cbor *it2;
- uint64_t i;
-
switch (ai) {
case AI_1: TAKE(pos, ebuf, 1, val = ntoh8p(pos)) ; break;
case AI_2: TAKE(pos, ebuf, 2, val = ntoh16p(pos)) ; break;
@@ -220,8 +216,8 @@
}
const cn_cbor* cn_cbor_decode(const char* buf, size_t len, cn_cbor_errback *errp) {
- cn_cbor catcher = {CN_CBOR_INVALID};
- struct parse_buf pb = {(unsigned char *)buf, (unsigned char *)buf+len};
+ cn_cbor catcher = {CN_CBOR_INVALID, 0, {0}, 0, 0, 0, 0, 0};
+ struct parse_buf pb = {(unsigned char *)buf, (unsigned char *)buf+len, CN_CBOR_NO_ERROR};
cn_cbor* ret = decode_item(&pb, &catcher);
if (ret) {
ret->parent = 0; /* mark as top node */
@@ -230,7 +226,7 @@
catcher.first_child->parent = 0;
cn_cbor_free(catcher.first_child);
}
- fail:
+ //fail:
if (errp) {
errp->err = pb.err;
errp->pos = pb.buf - (unsigned char *)buf;
diff --git a/test.c b/test.c
index dfa1817..5b949ee 100644
--- a/test.c
+++ b/test.c
@@ -80,7 +80,7 @@
}
-char *err_name[] = {
+const char *err_name[] = {
"CN_CBOR_NO_ERROR",
"CN_CBOR_ERR_OUT_OF_DATA",
"CN_CBOR_ERR_NOT_ALL_DATA_CONSUMED",
@@ -92,7 +92,7 @@
"CN_CBOR_ERR_OUT_OF_MEMORY",
};
-void cn_cbor_decode_test(char *buf, int len) {
+static void cn_cbor_decode_test(const char *buf, int len) {
struct cn_cbor_errback back;
const cn_cbor *ret = cn_cbor_decode(buf, len, &back);
if (ret)