remove compiler warnings
diff --git a/skeletons/tests/check-INTEGER.c b/skeletons/tests/check-INTEGER.c
index b58dd7b..4ec9fd5 100644
--- a/skeletons/tests/check-INTEGER.c
+++ b/skeletons/tests/check-INTEGER.c
@@ -61,7 +61,7 @@
 	assert(shared_scratch_start < scratch + sizeof(scratch));
 	assert(ret == 0);
 	ret = snprintf(verify, sizeof(verify), "%ld", check_long);
-	assert(ret < sizeof(verify));
+	assert(ret < 0 || (size_t)ret < sizeof(verify));
 	ret = strcmp(scratch, verify);
 	printf("         [%s] vs [%s]: %d%s\n",
 		scratch, verify, ret,
@@ -170,7 +170,7 @@
 }
 
 int
-main(int ac, char **av) {
+main() {
 	uint8_t buf1[] = { 1 };
 	uint8_t buf2[] = { 0xff };
 	uint8_t buf3[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
@@ -277,7 +277,7 @@
 		check_xer(-1, "<INTEGER>50223372036854775807</INTEGER>", 0);
 		check_xer(-1, "<INTEGER>100223372036854775807</INTEGER>", 0);
 		check_xer(-1, "<INTEGER>500223372036854775807</INTEGER>", 0);
-		check_xer(0, "<INTEGER>-9223372036854775808</INTEGER>", -9223372036854775808);
+		check_xer(0, "<INTEGER>-9223372036854775808</INTEGER>", -9223372036854775807-1);
 		check_xer(-1, "<INTEGER>-9223372036854775809</INTEGER>", 0);
 		check_xer(-1, "<INTEGER>-10223372036854775807</INTEGER>", 0);
 		check_xer(-1, "<INTEGER>-50223372036854775807</INTEGER>", 0);
diff --git a/skeletons/tests/check-PER-INTEGER.c b/skeletons/tests/check-PER-INTEGER.c
index fc5106a..640269b 100644
--- a/skeletons/tests/check-PER-INTEGER.c
+++ b/skeletons/tests/check-PER-INTEGER.c
@@ -7,6 +7,9 @@
 #include <per_support.h>
 
 static int FailOut(const void *data, size_t size, void *op_key) {
+    (void)data;
+    (void)size;
+    (void)op_key;
 	assert(!"UNREACHABLE");
 	return 0;
 }
@@ -89,7 +92,7 @@
 		recovered_value += cts.value.lower_bound;
 		assert((long)recovered_value == value);
 	}
-	assert(po.nboff == ((bit_range == 32) ? 0 : (8 - (32 - bit_range))));
+	assert(po.nboff == (size_t)((bit_range == 32) ? 0 : (8 - (32 - bit_range))));
 	assert(po.nbits ==  8 * (sizeof(po.tmpspace) - (po.buffer-po.tmpspace)));
 	assert(po.flushed_bytes == 0);
 
diff --git a/skeletons/tests/check-PER.c b/skeletons/tests/check-PER.c
index 8b55f23..285bec0 100644
--- a/skeletons/tests/check-PER.c
+++ b/skeletons/tests/check-PER.c
@@ -178,6 +178,9 @@
 }
 
 static int Ignore(const void *data, size_t size, void *op_key) {
+    (void)data;
+    (void)size;
+    (void)op_key;
 	return 0;
 }
 
@@ -299,7 +302,7 @@
 		ASN_DEBUG("Putting %d + %d bits (%d/%d), got %d bytes and %d bits",
             prior, next, (prior + next) / 8, (prior + next) % 8,
             (int)(po.buffer - po.tmpspace), (int)po.nboff);
-        assert((po.buffer - po.tmpspace) * 8 + po.nboff == prior + next);
+        assert((po.buffer - po.tmpspace) * 8 + po.nboff == (size_t)(prior + next));
         for(i = 0; i < (po.buffer - po.tmpspace); i++)
             assert(po.tmpspace[0] == (unsigned char)-1);
       }
@@ -315,7 +318,6 @@
 	int32_t d_add;
 	int32_t d_left;
 	int left_bits;
-	int i;
 
 	memset(&pos, 0, sizeof(pos));
 	pos.buffer = buf;
@@ -345,10 +347,10 @@
 
 	if(0 != memcmp(out.tmpspace, buf, buf_size)) {
 		printf("IN: ");
-		for(i = 0; i < buf_size; i++)
+		for(size_t i = 0; i < buf_size; i++)
 			printf(" %02x", buf[i]);
 		printf("\nOUT:");
-		for(i = 0; i < buf_size; i++)
+		for(size_t i = 0; i < buf_size; i++)
 			printf(" %02x", out.tmpspace[i]);
 		printf(" (out{nboff=%d,left=%d,%02x})\n", (int)out.nboff, left_bits, (int)d_left);
 		assert(0 == memcmp(out.tmpspace, buf, buf_size));
diff --git a/skeletons/tests/check-REAL.c b/skeletons/tests/check-REAL.c
index ba35244..18bf8a5 100644
--- a/skeletons/tests/check-REAL.c
+++ b/skeletons/tests/check-REAL.c
@@ -22,12 +22,12 @@
 }
 
 static char *
-d2s(double d, int canonical, const char *str) {
+d2s(double d, int canonical) {
 	ssize_t s;
 
 	reconstr_lens[canonical] = 0;
 	s = REAL__dump(d, canonical, callback, (void *)(ptrdiff_t)canonical);
-	assert(s < sizeof(reconstructed[canonical]));
+	assert(s > 0 && (size_t)s < sizeof(reconstructed[canonical]));
 	assert(s == reconstr_lens[canonical]);
 	reconstructed[canonical][s] = '\0';	// ASCIIZ
 	return reconstructed[canonical];
@@ -41,8 +41,8 @@
 check_str_representation(double d, const char *sample, const char *canonical_sample, int lineno) {
 	char *s0, *s1;
 
-	s0 = d2s(d, 0, sample);
-	s1 = d2s(d, 1, canonical_sample);
+	s0 = d2s(d, 0);
+	s1 = d2s(d, 1);
 
 	if(sample) {
 		printf("%03d: Checking %f->[\"%s\"] against [\"%s\"]%s\n",
@@ -136,12 +136,12 @@
 	rc = xer_decode(0, &asn_DEF_REAL, (void **)newst0p,
 		reconstructed[0], reconstr_lens[0]);
 	assert(rc.code == RC_OK);
-	assert(rc.consumed < reconstr_lens[0]);
+	assert(reconstr_lens[0] > 0 && rc.consumed < (size_t)reconstr_lens[0]);
 
 	rc = xer_decode(0, &asn_DEF_REAL, (void **)newst1p,
 		reconstructed[1], reconstr_lens[1]);
 	assert(rc.code == RC_OK);
-	assert(rc.consumed == reconstr_lens[1]);
+	assert(rc.consumed == (size_t)reconstr_lens[1]);
 
 	ret = asn_REAL2double(newst0, &value0);
 	assert(ret == 0);
@@ -185,10 +185,10 @@
 	memset(&rn, 0, sizeof(rn));
 	ret = asn_double2REAL(&rn, d);
 	assert(ret == 0);
-	if(rn.size != outsize) {
+	if((size_t)rn.size != outsize) {
 		printf("Encoded %f into %d expected %ld\n",
 			d, (int)rn.size, outsize);
-		assert(rn.size == outsize);
+		assert((size_t)rn.size == outsize);
 	}
 	assert(memcmp(rn.buf, outbuf, rn.size) == 0);
 
diff --git a/skeletons/tests/check-XER.c b/skeletons/tests/check-XER.c
index 82cd0e4..9084551 100644
--- a/skeletons/tests/check-XER.c
+++ b/skeletons/tests/check-XER.c
@@ -31,7 +31,7 @@
 		ch_type, (long)expected_chunk_type
 	);
 
-	if(expected_chunk_type == -1) {
+	if(expected_chunk_type == PXER_WMORE) {
 		assert(ch_size == 0);
 	} else {
 		assert(ch_size == expected_chunk_size);
@@ -81,13 +81,13 @@
 	check("<tag attribute=\"value\"/>", "tag", XCT_BOTH);
 
 	check_next("<tag/>", -1, PXER_TAG);
-	check_next("<tag", -1, -1);
+	check_next("<tag", -1, PXER_WMORE);
 	check_next("tag", -1, PXER_TEXT);
 	check_next("tag<s", 3, PXER_TEXT);
 	check_next("</a/>la", 5, PXER_TAG);
 	check_next("<!--blah", -1, PXER_COMMENT);
-	check_next("<!--blah-", -1, -1);
-	check_next("<!--blah--", -1, -1);
+	check_next("<!--blah-", -1, PXER_WMORE);
+	check_next("<!--blah--", -1, PXER_WMORE);
 	check_next("<!--blah-->", -1, PXER_COMMENT);
 
 	return 0;
diff --git a/skeletons/tests/check-length.c b/skeletons/tests/check-length.c
index 8c2b64b..aa73b2c 100644
--- a/skeletons/tests/check-length.c
+++ b/skeletons/tests/check-length.c
@@ -31,13 +31,12 @@
 
 
 static void
-check(int size) {
+check(size_t size) {
 	OCTET_STRING_t *os;
 	OCTET_STRING_t *nos = 0;
 	OCTET_STRING_t **nosp = &nos;
 	asn_enc_rval_t erval;
 	asn_dec_rval_t rval;
-	int i;
 
 	os = OCTET_STRING_new_fromBuf(&asn_DEF_OCTET_STRING, 0, size);
 	assert(os);
@@ -47,14 +46,14 @@
 	assert(os->buf);
 	os->size = size;
 
-	for(i = 0; i < size; i++) {
+	for(size_t i = 0; i < size; i++) {
 		os->buf[i] = i;
 	}
 
 	buf_off = 0;
 	erval = der_encode(&asn_DEF_OCTET_STRING,
 		os, write_to_buf, 0);
-	assert(erval.encoded == buf_off);
+	assert(erval.encoded >= 0 && (size_t)erval.encoded == buf_off);
 	assert(buf_off > size);
 
 	rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)nosp, buf, buf_off);
@@ -63,13 +62,13 @@
 
 	assert(os->size == nos->size);
 
-	for(i = 0; i < size; i++) {
+	for(size_t i = 0; i < size; i++) {
 		assert(os->buf[i] == nos->buf[i]);
 	}
 
 	if(0) {
-	fprintf(stderr, "new(%d):", size);
-	for(i = 0; i < (buf_off<10?buf_off:10); i++)
+	fprintf(stderr, "new(%zd):", size);
+	for(size_t i = 0; i < (buf_off<10?buf_off:10); i++)
 		fprintf(stderr, " %02x", buf[i]);
 	printf("\n");
 	}
@@ -87,9 +86,8 @@
 	uint8_t buf4[] = { 0x89, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04 };
 	ber_tlv_len_t tlv_len;
 	ssize_t ret;
-	int i;
 
-	for(i = 0; i < 66000; i++) {
+	for(size_t i = 0; i < 66000; i++) {
 		if(i == 4500) i = 64000;	/* Jump */
 		check(i);
 	}