Index: tests/.expect/array-ERR1.txt
===================================================================
--- tests/.expect/array-ERR1.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/array-ERR1.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,8 +1,7 @@
-array.cfa:125:25: warning: Preprocessor started
-array.cfa:40:22: error: '[*]' not allowed in other than function prototype scope
+array.cfa:40:23: error: '[*]' not allowed in other than function prototype scope
 array.cfa:46:24: error: '[*]' not allowed in other than function prototype scope
-array.cfa: In function '_X4fredFi_i__1':
+array.cfa: In function '_X4fredFv_i__1':
 array.cfa:52:16: error: array size missing in '_X2a1A0i_2'
 array.cfa:53:26: error: '[*]' not allowed in other than function prototype scope
 array.cfa: At top level:
-array.cfa:64:1: error: '[*]' not allowed in other than function prototype scope
+array.cfa:75:1: error: '[*]' not allowed in other than function prototype scope
Index: tests/.expect/array-ERR2.txt
===================================================================
--- tests/.expect/array-ERR2.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/array-ERR2.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,2 +1,1 @@
-array.cfa:125:25: warning: Preprocessor started
-array.cfa:117:32: error: syntax error, unexpected STATIC before token "static"
+array.cfa:139:33: error: syntax error, unexpected STATIC before token "static"
Index: tests/.expect/array-ERR3.txt
===================================================================
--- tests/.expect/array-ERR3.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/array-ERR3.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,2 +1,1 @@
-array.cfa:125:25: warning: Preprocessor started
-array.cfa:118:32: error: syntax error, unexpected ']' before token "]"
+array.cfa:140:33: error: syntax error, unexpected ']' before token "]"
Index: tests/.expect/array.txt
===================================================================
--- tests/.expect/array.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/array.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-array.cfa:125:25: warning: Preprocessor started
+done
Index: tests/.expect/attr-priority.txt
===================================================================
--- tests/.expect/attr-priority.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/attr-priority.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,6 +1,2 @@
 attr-priority.cfa:7:1 warning: invalid attribute: constructor priorities from 101 to 200 are reserved for the implementation.
 attr-priority.cfa:12:1 warning: invalid attribute: destructor priorities from 101 to 200 are reserved for the implementation.
-attr-priority.cfa:8:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: malloc
-...to:
-
Index: tests/.expect/cast.txt
===================================================================
--- tests/.expect/cast.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/cast.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-cast.cfa:16:25: warning: Compiled
+done
Index: tests/.expect/expression.txt
===================================================================
--- tests/.expect/expression.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/expression.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-expression.cfa:86:25: warning: Compiled
+done
Index: tests/.expect/identFuncDeclarator.txt
===================================================================
--- tests/.expect/identFuncDeclarator.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/identFuncDeclarator.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-identFuncDeclarator.cfa:114:25: warning: Compiled
+done
Index: tests/.expect/init1-ERROR.txt
===================================================================
--- tests/.expect/init1-ERROR.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/init1-ERROR.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,3 +1,2 @@
-init1.cfa:134:25: warning: Compiled
 init1.cfa:56:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
   Name: rx  InitAlternative: reference to signed int
Index: tests/.expect/init1.txt
===================================================================
--- tests/.expect/init1.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/init1.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-init1.cfa:134:25: warning: Compiled
+done
Index: tests/.expect/limits.txt
===================================================================
--- tests/.expect/limits.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/limits.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-limits.cfa:152:25: warning: Compiled
+done
Index: tests/.expect/nested-types-ERR1.txt
===================================================================
--- tests/.expect/nested-types-ERR1.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/nested-types-ERR1.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,2 +1,1 @@
-nested-types.cfa:100:25: warning: Compiled
-nested-types.cfa:83:1 error: Use of undefined type T.
+nested-types.cfa:85:1 error: Use of undefined type T.
Index: tests/.expect/nested-types-ERR2.txt
===================================================================
--- tests/.expect/nested-types-ERR2.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/nested-types-ERR2.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,6 +1,5 @@
-nested-types.cfa:100:25: warning: Compiled
-nested-types.cfa:86:1 error: Use of undefined global type Z.
-nested-types.cfa:87:1 error: Qualified type requires an aggregate on the left, but has signed int.
-nested-types.cfa:88:1 error: Undefined type in qualified type Qualified Type:
+nested-types.cfa:88:1 error: Use of undefined global type Z.
+nested-types.cfa:89:1 error: Qualified type requires an aggregate on the left, but has signed int.
+nested-types.cfa:90:1 error: Undefined type in qualified type Qualified Type:
   instance of struct S with body
   instance of type Z (not function type)
Index: tests/.expect/nested-types.txt
===================================================================
--- tests/.expect/nested-types.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/nested-types.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-nested-types.cfa:100:25: warning: Compiled
+done
Index: tests/.expect/numericConstants.txt
===================================================================
--- tests/.expect/numericConstants.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/numericConstants.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-numericConstants.cfa:66:25: warning: Compiled
+done
Index: tests/.expect/quasiKeyword.txt
===================================================================
--- tests/.expect/quasiKeyword.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/quasiKeyword.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-quasiKeyword.cfa:52:25: warning: Compiled
+done
Index: tests/.expect/switch.txt
===================================================================
--- tests/.expect/switch.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/switch.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-switch.cfa:103:25: warning: Compiled
+done
Index: tests/.expect/typedefRedef-ERR1.txt
===================================================================
--- tests/.expect/typedefRedef-ERR1.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/typedefRedef-ERR1.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,3 +1,2 @@
-typedefRedef.cfa:87:25: warning: Compiled
 typedefRedef.cfa:4:1 error: Cannot redefine typedef Foo
 typedefRedef.cfa:31:1 error: Cannot redefine typedef ARR
Index: tests/.expect/typedefRedef.txt
===================================================================
--- tests/.expect/typedefRedef.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/typedefRedef.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-typedefRedef.cfa:87:25: warning: Compiled
+done
Index: tests/.expect/variableDeclarator.txt
===================================================================
--- tests/.expect/variableDeclarator.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/.expect/variableDeclarator.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-variableDeclarator.cfa:180:25: warning: Compiled
+done
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/Makefile.am	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -39,5 +39,5 @@
 	-Wall \
 	-Wextra \
-	-Werror
+	-Werror                -Wno-unused-variable -Wno-unused-parameter
 
 WFLAGS_LAX = \
@@ -51,17 +51,20 @@
 # Making this association implicit would be ideal, but requires learning more automake than is affordable.
 WFLGAS_OPT_LAX = \
+	${WFLGAS_OPT_LAX_EXPECT_WARN} \
+	${WFLGAS_OPT_LAX_TO_INVESTIGATE}
+
+# Tests checking that cfa-cc raises a certain warning, so -Werror is permanently inappropriate
+WFLGAS_OPT_LAX_EXPECT_WARN = \
+	attr-priority \
+	warnings/self-assignment
+
+# Tests that need investigation from the CFA team about why they require lax wflags.  Goal is to eliminate this list.
+WFLGAS_OPT_LAX_TO_INVESTIGATE = \
 	alloc \
-	array \
 	array-collections/boxed \
 		array-collections/boxed% \
 	array-collections/dimexpr-match-c \
 	array-collections/dimexpr-match-cfa \
-	array-ERR1 \
-	array-ERR2 \
-	array-ERR3 \
 	attributes \
-	attr-priority \
-	builtins/sync \
-	cast \
 	collections/atomic_mpsc \
 	collections/multi_list \
@@ -136,5 +139,4 @@
 	concurrency/unified_locking/timeout_lock \
 	concurrency/waitfor/barge \
-	concurrency/waitfor/parse \
 	concurrency/waitfor/statment \
 	concurrency/waitfor/when \
@@ -171,9 +173,7 @@
 	exceptions/try-leave-catch \
 	exceptions/virtual-poly \
-	expression \
 	forall \
 	function-operator \
 	gmp \
-	identFuncDeclarator \
 	identParamDeclarator \
 	include/includes \
@@ -182,6 +182,4 @@
 	include/vector-fstream \
 	include/vector-sequence \
-	init1 \
-	init1-ERROR \
 	io/away_fair \
 	io/comp_basic \
@@ -195,5 +193,4 @@
 	io/manipulatorsInput-uchunk \
 	io/many_read \
-	limits \
 	linking/io-acquire \
 	linking/mangling/anon \
@@ -207,8 +204,4 @@
 	maybe \
 	minmax \
-	nested-types \
-	nested-types-ERR1 \
-	nested-types-ERR2 \
-	numericConstants \
 	operators \
 	poly-d-cycle \
@@ -218,5 +211,4 @@
 	poly-o-cycle \
 	PRNG \
-	quasiKeyword \
 	quotedKeyword \
 	raii/boxed-types \
@@ -237,11 +229,7 @@
 	tuple/tuplePolymorphism \
 	tuple/tupleVariadic \
-	typedefRedef \
-	typedefRedef-ERR1 \
 	typeof \
 	userLiterals \
-	variableDeclarator \
-	vector \
-	warnings/self-assignment
+	vector
 
 WFLAGS=${if ${filter ${WFLGAS_OPT_LAX},${@}},${WFLAGS_LAX},${WFLAGS_STRICT}}
@@ -413,7 +401,5 @@
 CFACOMPILE_SYNTAX = ${CFACOMPILETEST} -Wno-unused-variable -Wno-unused-label -c -fsyntax-only -o ${abspath ${@}}
 
-SYNTAX_ONLY_CODE = \
-	array cast expression identFuncDeclarator init1 limits nested-types numericConstants opt-params quasiKeyword switch typedefRedef variableDeclarator \
-	builtins/sync concurrency/waitfor/parse ctrl-flow/labelledExit include/stdincludes include/includes warnings/self-assignment
+SYNTAX_ONLY_CODE = attr-priority warnings/self-assignment
 
 ${SYNTAX_ONLY_CODE} : % : %.cfa ${CFACCBIN}
Index: tests/array.cfa
===================================================================
--- tests/array.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/array.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -37,8 +37,8 @@
 #endif
 
-    int a1[0];
-E1( int a2[*];       )
+    int ga1[0];
+E1( int ga2[*];       )
                                                         #ifndef __cforall
-E1( double a4[3.0];  )                                  // BUG 275: CFA accepts but should reject
+E1( int ga3[3.0];  )                                  // BUG 275: CFA accepts but should reject
                                                         #endif
 
@@ -49,29 +49,48 @@
     typedef int T;
 
-    int fred(int n) {
-E1(     int a1[];    )
-E1(     int a2[*];   )
-        int a4[3];
-        int T[3];
-        int a5[n];
+    void fred(int n) {
+E1(     int a1[];   )
+E1(     int a2[*];  )
+        int a4[3];      (void) a4;
+        int T[3];       (void) T;
+        int a5[n];      (void) a5;
     }
 
-    int fred2(int n,
+    void fred2(int n,
         int a1[],
-E1(     int a2[*],   )
+E1(     int a2[*],                                 )
         int a4[3],
-        int T[3],
+        int T[3]        __attribute__((unused)),
         int a5[n]
-    ) {}
+    ) {
+        // FIX ME: Replace attribute-unused on T with void cast, once Trac 297 is fixed.
+        // This parameter should be in scope and usable within the body.
 
-    int mary( int T[3],                                 // same as: int *T
-              int p1[const 3],                          // same as: int const *p1
-              int p2[static 3],                         // same as T, but length >=3 checked
-              int p3[static const 3]                    // both above: 3 is static, p3 is const
-        ) {
+        // Skip a2 because it's declared only in an error case.
+
+        (void) a1;
+        (void) a4;
+//      (void) T;
+        (void) a5;
+    }
+
+    void mary(
+        int T[3]        __attribute__((unused)),  // same as: int *T
+        int p1[const 3],                          // same as: int const *p1
+        int p2[static 3],                         // same as T, but length >=3 checked
+        int p3[static const 3]                    // both above: 3 is static, p3 is const
+    ) {
+        // FIX ME: Replace attribute-unused on T with void cast, once Trac 297 is fixed.
+        // This parameter should be in scope and usable within the body.
+
+//      (void) T;
+        (void) p1;
+        (void) p2;
+        (void) p3;
     }
 
     // function taking (), returning pointer to array of ints
     int (*tom())[3] {
+        return 0p;
     }
 
@@ -82,4 +101,5 @@
                      int p3[static const 3]
         ) {
+        return 0p;
     }
 
@@ -87,4 +107,5 @@
     #ifdef __cforall
     [ * [3] int ] toms_twin(...) {
+        return 0p;
     }
     [ * [int]( [3] int T,
@@ -94,4 +115,5 @@
              )
     ] janes_twin(...) {
+        return 0p;
     }
     #endif
@@ -112,16 +134,16 @@
     // fm5.
 
-    int fm1x( int, int, int[][*] );
-    int fm1y( int r, int c, int m[][c] ) {}
-    int fm2( int r, int c, int (*m)[c] ) {}             // same as fm1
-E2( int fm3( int r, int c, int m[][static c] ) {}  )    // that's not static
-E3( int fm4( int r, int c, int m[][] );            )    // m's immediate element type is incomplete
-    int fm5x( int, int, int[*][*] );                    // same as fm1 decl
-    int fm5y( int r, int c, int m[r][c] ) {}            // same as fm1 defn
+    void fm1x( int, int, int[][*] );
+    void fm1y( int r, int c, int m[][c] ) { (void) r; (void) c; (void) m; }
+    void fm2( int r, int c, int (*m)[c] ) { (void) r; (void) c; (void) m; }             // same as fm1
+E2( void fm3( int r, int c, int m[][static c] ) {}  )    // that's not static
+E3( void fm4( int r, int c, int m[][] );            )    // m's immediate element type is incomplete
+    void fm5x( int, int, int[*][*] );                    // alt syntax for fm1 decl
+    void fm5y( int r, int c, int m[r][c] ) { (void) r; (void) c; (void) m; }            // alt syntax for fm1 defn
 
 
 
 int main() {
-    #pragma GCC warning "Preprocessor started"          // force non-empty .expect file, NO TABS!!!
+    printf("done\n");
 }
 
Index: tests/attr-priority.cfa
===================================================================
--- tests/attr-priority.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/attr-priority.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,4 +1,4 @@
-// Although we are testing the attribute priority checks, we also have a
-// resolver error to force the expect to compare against the compiler output.
+// Is compiled -fsyntax-only, to make the test's "output" be the warnings from cfa-cpp.
+
 
 int * store = 0p;
@@ -6,5 +6,5 @@
 __attribute__(( constructor(150) ))
 void ctor_store(void) {
-	store = malloc();
+	store = (int*)malloc(200);
 }
 
@@ -14,6 +14,2 @@
 	store = 0;
 }
-
-int main(void) {
-	return 0;
-}
Index: tests/builtins/.expect/sync.txt
===================================================================
--- tests/builtins/.expect/sync.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/builtins/.expect/sync.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-builtins/sync.cfa:356:25: warning: Compiled
+done
Index: tests/builtins/sync.cfa
===================================================================
--- tests/builtins/sync.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/builtins/sync.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -354,4 +354,4 @@
 
 int main() {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 }
Index: tests/cast.cfa
===================================================================
--- tests/cast.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/cast.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -4,5 +4,5 @@
 void f() {
 	char f;
-	double f;
+	double f __attribute__((unused));
 	(int)f;
 	short f;
@@ -13,5 +13,5 @@
 
 //Dummy main
-int main( int argc, char const * argv[] ) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+int main() {
+    printf("done\n");
 }
Index: tests/concurrency/waitfor/.expect/parse.txt
===================================================================
--- tests/concurrency/waitfor/.expect/parse.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/concurrency/waitfor/.expect/parse.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-concurrency/waitfor/parse.cfa:255:25: warning: Compiled
+done
Index: tests/concurrency/waitfor/parse.cfa
===================================================================
--- tests/concurrency/waitfor/parse.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/concurrency/waitfor/parse.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -252,6 +252,6 @@
 
 //Dummy main
-int main( int argc, char const * argv[] ) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+int main() {
+	printf("done\n");
 }
 
Index: tests/ctrl-flow/.expect/labelledExit.txt
===================================================================
--- tests/ctrl-flow/.expect/labelledExit.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/ctrl-flow/.expect/labelledExit.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-ctrl-flow/labelledExit.cfa:181:25: warning: Compiled
+done
Index: tests/ctrl-flow/labelledExit.cfa
===================================================================
--- tests/ctrl-flow/labelledExit.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/ctrl-flow/labelledExit.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -179,5 +179,5 @@
 
 int main( int argc, char const *argv[] ) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 }
 
Index: tests/expression.cfa
===================================================================
--- tests/expression.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/expression.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,9 +1,9 @@
 struct S { int i; };
 void ?{}( S & s, int i ) { s.i = i; }
-int ?`mary( int );
-int ?`mary( S );
-[int] ?`mary( [int, int] );
-int & ?`jane( int & );
-int jack( int );
+int ?`mary( int ) { return 0; }
+int ?`mary( S ) { return 0; }
+[int] ?`mary( [int, int] ) { return 0; }
+int & ?`jane( int & x ) { return x; }
+int jack( int ) { return 0; }
 
 int main() {
@@ -84,4 +84,4 @@
 	(S)@{2}`mary;
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 } // main
Index: tests/identFuncDeclarator.cfa
===================================================================
--- tests/identFuncDeclarator.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/identFuncDeclarator.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -14,103 +14,108 @@
 // 
 
+int f1;
+int (f2);
+
+int * f3;
+int ** f4;
+int * const * f5;
+int * const * const f6;
+
+int * (f7);
+int ** (f8);
+int * const * (f9);
+int * const * const (f10);
+
+int (* f11);
+int (** f12);
+int (* const * f13);
+int (* const * const f14);
+
+int f15[2];
+int f16[10];
+int (f17[2]);
+int (f18[10]);
+
+int * f19[2];
+int * f20[10];
+int ** f21[2];
+int ** f22[10];
+int * const * f23[2];
+int * const * f24[10];
+int * const * const f25[2];
+int * const * const f26[10];
+
+int * (f27[2]);
+int * (f28[10]);
+int ** (f29[2]);
+int ** (f30[10]);
+int * const * (f31[2]);
+int * const * (f32[10]);
+int * const * const (f33[2]);
+int * const * const (f34[10]);
+
+int (* f35[2]);
+int (* f36[10]);
+int (** f37[2]);
+int (** f38[10]);
+int (* const * f39[2]);
+int (* const * f40[10]);
+int (* const * const f41[2]);
+int (* const * const f42[10]);
+
+int f43[2][3];
+int f44[3][3];
+int (f45[2])[3];
+int (f46[3])[3];
+int ((f47[2]))[3];
+int ((f48[3]))[3];
+
+int * f49[2][3];
+int * f50[3][3];
+int ** f51[2][3];
+int ** f52[3][3];
+int * const * f53[2][3];
+int * const * f54[3][3];
+int * const * const f55[2][3];
+int * const * const f56[3][3];
+
+int (* f57[2][3]);
+int (* f58[3][3]);
+int (** f59[2][3]);
+int (** f60[3][3]);
+int (* const * f61[2][3]);
+int (* const * f62[3][3]);
+int (* const * const f63[2][3]);
+int (* const * const f64[3][3]);
+
+int f65(int);
+int (f66)(int);
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+
+int * f67(int);
+int ** f68(int);
+int * const * f69(int);
+int * const * const f70(int);
+
+int * (f71)(int);
+int ** (f72)(int);
+int * const * (f73)(int);
+int * const * const (f74)(int);
+
+int (* f75)(int);
+int (** f76)(int);
+int (* const * f77)(int);
+int (* const * const f78)(int);
+
+int (* (* f79)(int))();
+int (* (* const f80)(int))();
+int (* const(* const f81)(int))();
+
+#pragma GCC diagnostic pop
+
 int main() {
-	int f1;
-	int (f2);
-
-	int * f3;
-	int ** f4;
-	int * const * f5;
-	int * const * const f6;
-
-	int * (f7);
-	int ** (f8);
-	int * const * (f9);
-	int * const * const (f10);
-
-	int (* f11);
-	int (** f12);
-	int (* const * f13);
-	int (* const * const f14);
-
-	int f15[2];
-	int f16[10];
-	int (f17[2]);
-	int (f18[10]);
-
-	int * f19[2];
-	int * f20[10];
-	int ** f21[2];
-	int ** f22[10];
-	int * const * f23[2];
-	int * const * f24[10];
-	int * const * const f25[2];
-	int * const * const f26[10];
-
-	int * (f27[2]);
-	int * (f28[10]);
-	int ** (f29[2]);
-	int ** (f30[10]);
-	int * const * (f31[2]);
-	int * const * (f32[10]);
-	int * const * const (f33[2]);
-	int * const * const (f34[10]);
-
-	int (* f35[2]);
-	int (* f36[10]);
-	int (** f37[2]);
-	int (** f38[10]);
-	int (* const * f39[2]);
-	int (* const * f40[10]);
-	int (* const * const f41[2]);
-	int (* const * const f42[10]);
-
-	int f43[2][3];
-	int f44[3][3];
-	int (f45[2])[3];
-	int (f46[3])[3];
-	int ((f47[2]))[3];
-	int ((f48[3]))[3];
-
-	int * f49[2][3];
-	int * f50[3][3];
-	int ** f51[2][3];
-	int ** f52[3][3];
-	int * const * f53[2][3];
-	int * const * f54[3][3];
-	int * const * const f55[2][3];
-	int * const * const f56[3][3];
-
-	int (* f57[2][3]);
-	int (* f58[3][3]);
-	int (** f59[2][3]);
-	int (** f60[3][3]);
-	int (* const * f61[2][3]);
-	int (* const * f62[3][3]);
-	int (* const * const f63[2][3]);
-	int (* const * const f64[3][3]);
-
-	int f65(int);
-	int (f66)(int);
-
-	int * f67(int);
-	int ** f68(int);
-	int * const * f69(int);
-	int * const * const f70(int);
-
-	int * (f71)(int);
-	int ** (f72)(int);
-	int * const * (f73)(int);
-	int * const * const (f74)(int);
-
-	int (* f75)(int);
-	int (** f76)(int);
-	int (* const * f77)(int);
-	int (* const * const f78)(int);
-
-	int (* (* f79)(int))();
-	int (* (* const f80)(int))();
-	int (* const(* const f81)(int))();
-
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 }
 
Index: tests/include/.expect/includes.txt
===================================================================
--- tests/include/.expect/includes.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/include/.expect/includes.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-include/includes.cfa:173:25: warning: Compiled
+done
Index: tests/include/.expect/stdincludes.txt
===================================================================
--- tests/include/.expect/stdincludes.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/include/.expect/stdincludes.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,1 +1,1 @@
-include/stdincludes.cfa:50:25: warning: Compiled
+done
Index: tests/include/includes.cfa
===================================================================
--- tests/include/includes.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/include/includes.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -171,5 +171,5 @@
 
 int main() {
-    #pragma GCC warning "Compiled"							// force non-empty .expect file, NO TABS!!!
+    printf("done\n");
 }
 
Index: tests/include/stdincludes.cfa
===================================================================
--- tests/include/stdincludes.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/include/stdincludes.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -48,5 +48,5 @@
 
 int main() {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+    printf("done\n");
 }
 
Index: tests/init1.cfa
===================================================================
--- tests/init1.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/init1.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -32,12 +32,12 @@
     //
 
-    char * str1 = "hi";
-    const char * str2 = "hi";
+    char * str1 = "hi";             (void) str1;
+    const char * str2 = "hi";       (void) str2;
 
-    float & rx2 = rx;
-    float * px2 = px;
+    float & rx2 = rx;               (void) rx2;
+    float * px2 = px;               (void) px2;
 
-    const float & crx2 = crx;
-    const float * cpx2 = cpx;
+    const float & crx2 = crx;       (void) crx2;
+    const float * cpx2 = cpx;       (void) cpx2;
 
     // FIX ME: Code gen not producing correct cast.
@@ -132,4 +132,4 @@
 
 int main() {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+    printf("done\n");
 }
Index: tests/limits.cfa
===================================================================
--- tests/limits.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/limits.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -149,6 +149,6 @@
 long double _Complex _1_sqrt_2 = _1_SQRT_2;
 
-int main(int argc, char const *argv[]) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+int main() {
+	printf("done\n");
 }
 
Index: tests/nested-types.cfa
===================================================================
--- tests/nested-types.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/nested-types.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -64,4 +64,6 @@
 // S.T t;
 
+#pragma GCC diagnostic ignored "-Wunused-variable"
+
 int main() {
 	// access nested struct
@@ -93,10 +95,10 @@
 
 	S.Bar y;
-	S.Baz x;
+	S.Baz w;
 	S.T.Bar z;
 
 	// A.N(int) x;  // xxx - should not be an error, but currently is.
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 }
 
Index: tests/numericConstants.cfa
===================================================================
--- tests/numericConstants.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/numericConstants.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -64,5 +64,5 @@
 	0x_1.ffff_ffff_p_128_l;
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 } // main
 
Index: tests/quasiKeyword.cfa
===================================================================
--- tests/quasiKeyword.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/quasiKeyword.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -13,12 +13,13 @@
 
 exception E {};
+vtable(E) E_vt;
 
-void catch( int i ) {}
-void recover( int i ) {}
-void catchResume( int i ) {}
-void fixup( int i ) {}
-void finally( int i ) {}
+void catch( int i )       { (void) i; }
+void recover( int i )     { (void) i; }
+void catchResume( int i ) { (void) i; }
+void fixup( int i )       { (void) i; }
+void finally( int i )     { (void) i; }
 
-int main(int argc, char const *argv[]) {
+int main() {
 	int catch, recover, catchResume, fixup, finally;
 	try {
@@ -33,7 +34,7 @@
 		finally = 3;
 		finally( finally );
-		throw (E){};
-		report (E){};
-		throwResume (E){};
+		throw (E){ & E_vt };
+		report (E){ & E_vt };
+		throwResume (E){ & E_vt };
 	} catch ( E * ) {
 	} recover ( E * ) {									// same as catch
@@ -50,4 +51,4 @@
 	else catch = 3;
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 }
Index: tests/switch.cfa
===================================================================
--- tests/switch.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/switch.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -101,5 +101,5 @@
 	} // choose
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 } // main
 
Index: tests/typedefRedef.cfa
===================================================================
--- tests/typedefRedef.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/typedefRedef.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -78,11 +78,11 @@
 #endif
 
-	Foo * x;
+	Foo * x;	(void) x;
 
 	typedef struct Bar Foo;
-	Foo * y;
+	Foo * y;	(void) y;
 
 	typedef int *** pt;
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	printf("done\n");
 }
Index: tests/variableDeclarator.cfa
===================================================================
--- tests/variableDeclarator.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/variableDeclarator.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -93,4 +93,7 @@
 int (f66)(int);
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+
 int * f67(int);
 int ** f68(int);
@@ -112,4 +115,6 @@
 int (*(* const f80)(int))();
 int (* const(* const f81)(int))();
+
+#pragma GCC diagnostic pop
 
 // errors
@@ -166,8 +171,13 @@
 [int] cf66(int);
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+
 [* int] cf67(int);
 [* * int] cf68(int);
 [const * * int] cf69(int);
 [const * const * int] cf70(int);
+
+#pragma GCC diagnostic pop
 
 // function pointer
@@ -177,6 +187,6 @@
 
 //Dummy main
-int main( int argc, char const * argv[] ) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+int main() {
+    printf("done\n");
 }
 
Index: tests/warnings/.expect/self-assignment.txt
===================================================================
--- tests/warnings/.expect/self-assignment.txt	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/warnings/.expect/self-assignment.txt	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -1,3 +1,2 @@
-warnings/self-assignment.cfa:34:25: warning: Compiled
 warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of:
   Variable Expression: j: signed int
Index: tests/warnings/self-assignment.cfa
===================================================================
--- tests/warnings/self-assignment.cfa	(revision a6b48f68cb246083ed368992a7503a9f6220110c)
+++ tests/warnings/self-assignment.cfa	(revision 2853d6fb02befcb65b90aa2717750f5b7e57ad95)
@@ -22,5 +22,5 @@
 };
 
-int main() {
+void f() {
 	int j = 0;
 	S s = { 0 };
@@ -32,5 +32,5 @@
 	t.s.i = t.s.i;
 
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	// Is compiled -fsyntax-only (not run), to make the test's "output" be the warnings from cfa-cpp.
 }
 
