Index: tests/.expect/designations.txt
===================================================================
--- tests/.expect/designations.txt	(revision 161b98e176a8c6e86e9ad2d64dacfda501b635e4)
+++ tests/.expect/designations.txt	(revision a465d751670dd89609bb3c56b01595c92c9653ba)
@@ -42,4 +42,9 @@
 =====C=====
 
+====ARR====
+[0, 3]
+3
+====ARR====
+
 =====E=====
 (A){ 2 3 (nil) }
@@ -52,2 +57,21 @@
 =====E=====
 
+==STRINGS==
+hello
+hello
+abc
+[a, b, c]
+[a, b]
+[c, d]
+[c, d]
+a
+==STRINGS==
+
+===EXTRA===
+(point){ 7 5 }
+(foo){ 4.000000 }
+[0, 1, 2, 0, 4, 0]
+[0 ... 1 ...]
+[{ 36 0 }, { 0 0 }, { 35 34 } ...]
+===EXTRA===
+
Index: tests/designations.cfa
===================================================================
--- tests/designations.cfa	(revision 161b98e176a8c6e86e9ad2d64dacfda501b635e4)
+++ tests/designations.cfa	(revision a465d751670dd89609bb3c56b01595c92c9653ba)
@@ -16,4 +16,5 @@
 // Note: this test case has been crafted so that it compiles with both cfa and with gcc without any modifications.
 #include <stdio.h>
+
 #ifdef __cforall
 #define AT @
@@ -24,5 +25,4 @@
 #pragma GCC diagnostic ignored "-Wmissing-braces"
 #pragma GCC diagnostic ignored "-Woverride-init"
-#pragma GCC diagnostic ignored "-Wunused-variable"
 #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
 
@@ -161,4 +161,6 @@
 	// no initializer - legal C, but garbage values - don't print this one
 	struct B z4;
+	// Mark this as unused since it can't be printed.
+	(void)z4;
 
 	// no curly braces - initialize with object of same type
@@ -220,4 +222,9 @@
 	int i1 = { 3 };
 
+	printf( "====ARR====\n" );
+	printf( "[%d, %d]\n", i[0], i[1] );
+	printf( "%d\n", i1 );
+	printf( "====ARR====\n\n" );
+
 	// doesn't work yet.
 	// designate unnamed object's members
@@ -259,6 +266,17 @@
 	const char c2[] = "abc";
 	const char c3[] = { 'a', 'b', 'c' };
-	const char c4[][2] = { { 'a', 'b' }, { 'c', 'd'}, { 'c', 'd'} };
+	const char c4[][2] = { { 'a', 'b' }, { 'c', 'd' }, { 'c', 'd' } };
 	const char ch = c4[0][0];
+
+	printf( "==STRINGS==\n" );
+	printf( "%s\n", str0 );
+	printf( "%s\n", str1 );
+	printf( "%s\n", c2 );
+	printf( "[%c, %c, %c]\n", c3[0], c3[1], c3[2] );
+	for ( unsigned index = 0 ; index < 3 ; ++index ) {
+		printf( "[%c, %c]\n", c4[index][0], c4[index][1] );
+	}
+	printf( "%c\n", ch );
+	printf( "==STRINGS==\n\n" );
 
 	// more cases
@@ -270,8 +288,16 @@
 	union foo { int i; double d; };
 	union foo f = { .d = 4 };
-	int v1 = 0, v2 = 0, v4 = 0;
+	int v1 = 1, v2 = 2, v4 = 4;
 	int w[6] = { [1] = v1, v2, [4] = v4 };
 	int whitespace[256] = { [' '] = 1, ['\t'] = 1, ['\v'] = 1, ['\f'] = 1, ['\n'] = 1, ['\r'] = 1 };
 	struct point ptarray[10] = { [2].y = 34, [2].x = 35, [0].x = 36 };
+
+	printf( "===EXTRA===\n" );
+	printf( "(point){ %d %d }\n", p.x, p.y );
+	printf( "(foo){ %f }\n", f.d );
+	printf( "[%d, %d, %d, %d, %d, %d]\n", w[0], w[1], w[2], w[3], w[4], w[5] );
+	printf( "[%d ... %d ...]\n", whitespace[0], whitespace[32] );
+	printf( "[{ %d %d }, { %d %d }, { %d %d } ...]\n", ptarray[0].x, ptarray[0].y, ptarray[1].x, ptarray[1].y, ptarray[2].x, ptarray[2].y );
+	printf( "===EXTRA===\n\n" );
 }
 
