generate constraints differently to avoid warnings
diff --git a/tests/tests-c-compiler/check-src/check-41.c b/tests/tests-c-compiler/check-src/check-41.c
index 483229e..39bbe3c 100644
--- a/tests/tests-c-compiler/check-src/check-41.c
+++ b/tests/tests-c-compiler/check-src/check-41.c
@@ -90,9 +90,8 @@
 }
 
 static void
-compare(T_t *tp, uint8_t *cmp_buf, int cmp_buf_size) {
+compare(T_t *tp, uint8_t *cmp_buf, size_t cmp_buf_size) {
 	asn_enc_rval_t erval;
-	int i;
 
 	buf_size = cmp_buf_size + 100;
     uint8_t scratch[buf_size];
@@ -104,14 +103,14 @@
 	 */
 	erval = der_encode(&asn_DEF_T, tp, buf_fill, 0);
 	assert(erval.encoded != -1);
-	if(erval.encoded != cmp_buf_size) {
+	if((size_t)erval.encoded != cmp_buf_size) {
 		printf("%zd != %zd\n", erval.encoded, cmp_buf_size);
-	}
-	assert(erval.encoded == cmp_buf_size);
-	for(i = 0; i < cmp_buf_size; i++) {
+        assert((size_t)erval.encoded == cmp_buf_size);
+    }
+	for(size_t i = 0; i < cmp_buf_size; i++) {
 		if(buf[i] != cmp_buf[i]) {
 			fprintf(stderr, "Recreated buffer content mismatch:\n");
-			fprintf(stderr, "Byte %d, %x != %x (%d != %d)\n",
+			fprintf(stderr, "Byte %zd, %x != %x (%d != %d)\n",
 				i,
 				buf[i], cmp_buf[i],
 				buf[i], cmp_buf[i]