diff --git a/tests/tests-c-compiler/check-src/check-03.-fwide-types.c b/tests/tests-c-compiler/check-src/check-03.-fwide-types.c
index 5a58d79..8af08fb 100644
--- a/tests/tests-c-compiler/check-src/check-03.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-03.-fwide-types.c
@@ -13,12 +13,9 @@
 
 static int
 buf_writer(const void *buffer, size_t size, void *app_key) {
-        char *b, *bend;
         (void)app_key;
         assert(buf_offset + size < sizeof(buf));
         memcpy(buf + buf_offset, buffer, size);
-        b = buf + buf_offset;
-        bend = b + size;
         buf_offset += size;
         return 0;
 }
diff --git a/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c b/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c
index 655dd75..157b9a7 100644
--- a/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c
@@ -39,13 +39,13 @@
 
 static int
 _buf_writer(const void *buffer, size_t size, void *app_key) {
-	unsigned char *b, *bend;
 	(void)app_key;
 	assert(buf_offset + size < sizeof(buf));
 	memcpy(buf + buf_offset, buffer, size);
+#ifdef EMIT_ASN_DEBUG
+	unsigned char *b, *bend;
 	b = buf + buf_offset;
 	bend = b + size;
-#ifdef EMIT_ASN_DEBUG
 	fprintf(stderr, "=> [");
 	for(; b < bend; b++) {
 		if(*b >= 32 && *b < 127 && *b != '%')
@@ -97,6 +97,8 @@
 		rval = xer_encode(&asn_DEF_PDU, st, XER_F_CANONICAL,
 			_buf_writer, 0);
 		break;
+    default:
+        assert(!"Unreachable");
 	}
 
 	if (rval.encoded == -1) {
@@ -173,6 +175,8 @@
             case AS_DER:
             case AS_CXER:
                 assert(!"DER or CXER not supported for load");
+            default:
+                assert(!"Unreachable");
 			}
 			fbuf_offset += rval.consumed;
 			fbuf_left -= rval.consumed;
diff --git a/tests/tests-c-compiler/check-src/check-119.-gen-PER.c b/tests/tests-c-compiler/check-src/check-119.-gen-PER.c
index 0743302..1dad35f 100644
--- a/tests/tests-c-compiler/check-src/check-119.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-119.-gen-PER.c
@@ -39,13 +39,13 @@
 
 static int
 _buf_writer(const void *buffer, size_t size, void *app_key) {
-	unsigned char *b, *bend;
 	(void)app_key;
 	assert(buf_offset + size < sizeof(buf));
 	memcpy(buf + buf_offset, buffer, size);
+#ifdef EMIT_ASN_DEBUG
+	unsigned char *b, *bend;
 	b = buf + buf_offset;
 	bend = b + size;
-#ifdef EMIT_ASN_DEBUG
 	fprintf(stderr, "=> [");
 	for(; b < bend; b++) {
 		if(*b >= 32 && *b < 127 && *b != '%')
@@ -97,6 +97,8 @@
 		rval = xer_encode(&asn_DEF_PDU, st, XER_F_CANONICAL,
 			_buf_writer, 0);
 		break;
+    default:
+        assert(!"Unreachable");
 	}
 
 	if (rval.encoded == -1) {
@@ -173,6 +175,8 @@
             case AS_DER:
             case AS_CXER:
                 assert(!"Unexpected DER or CXER load request");
+            default:
+                assert(!"Unreachable");
 			}
 			fbuf_offset += rval.consumed;
 			fbuf_left -= rval.consumed;
diff --git a/tests/tests-c-compiler/check-src/check-126.-gen-PER.c b/tests/tests-c-compiler/check-src/check-126.-gen-PER.c
index ed8cd25..4ec55a4 100644
--- a/tests/tests-c-compiler/check-src/check-126.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-126.-gen-PER.c
@@ -29,13 +29,13 @@
 
 static int
 _buf_writer(const void *buffer, size_t size, void *app_key) {
-	unsigned char *b, *bend;
 	(void)app_key;
 	assert(buf_offset + size < sizeof(buf));
 	memcpy(buf + buf_offset, buffer, size);
+#ifdef EMIT_ASN_DEBUG
+	unsigned char *b, *bend;
 	b = buf + buf_offset;
 	bend = b + size;
-#ifdef EMIT_ASN_DEBUG
 	fprintf(stderr, "=> [");
 	for(; b < bend; b++) {
 		if(*b >= 32 && *b < 127 && *b != '%')
@@ -78,6 +78,8 @@
 		rval = xer_encode(&asn_DEF_PDU, st, XER_F_BASIC,
 			_buf_writer, 0);
 		break;
+    default:
+        assert(!"Unreachable");
 	}
 
 	if (rval.encoded == -1) {
@@ -177,6 +179,8 @@
 					}
 				}
 				break;
+            default:
+                assert(!"Unreachable");
 			}
 			fbuf_offset += rval.consumed;
 			fbuf_left -= rval.consumed;
