Fix compile bug
diff --git a/.travis.yml b/.travis.yml
index e07a385..87e8c46 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,5 @@
 language: c
 compiler:
-  - clang
   - gcc
 
 env:
diff --git a/src/cn-cbor.c b/src/cn-cbor.c
index d3eb317..74ad9af 100644
--- a/src/cn-cbor.c
+++ b/src/cn-cbor.c
@@ -58,7 +58,7 @@
 			switch (p->type) {
 				case CN_CBOR_BYTES:
 				case CN_CBOR_TEXT:
-					CN_CBOR_FREE_CONTEXT(p->v.bytes);
+					CN_CBOR_FREE_CONTEXT((void *) p->v.bytes);
 					break;
 
 				default:
@@ -138,10 +138,10 @@
 };
 
 #define TAKE(pos, ebuf, n, stmt)               \
-	if (n > (size_t)(ebuf - pos))              \
+	if ((n) > (size_t)((ebuf) - (pos)))          \
 		CN_CBOR_FAIL(CN_CBOR_ERR_OUT_OF_DATA); \
 	stmt;                                      \
-	pos += n;
+	(pos) += (n);
 
 static cn_cbor *decode_item(struct parse_buf *pb CBOR_CONTEXT, cn_cbor *top_parent)
 {