Index: tests/.expect/attributes.arm64.txt
===================================================================
--- tests/.expect/attributes.arm64.txt	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/.expect/attributes.arm64.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -1,2 +1,5 @@
+
+#pragma GCC diagnostic ignored "-Wattributes"
+;
 signed int _X2laFi___1(void){
     __attribute__ ((unused)) signed int _X10_retval_lai_1;
@@ -5,4 +8,9 @@
     }
 
+    {
+        ((void)(_X10_retval_lai_1=1) /* ?{} */);
+    }
+
+    return _X10_retval_lai_1;
 }
 struct __attribute__ ((unused)) __anonymous0 {
@@ -1159,8 +1167,18 @@
 __attribute__ ((unused)) signed int _X2f1Fi___1(void){
     __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+    {
+        ((void)(_X10_retval_f1i_1=1) /* ?{} */);
+    }
+
+    return _X10_retval_f1i_1;
 }
 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
     __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
+    {
+        ((void)((*((signed int ***)(&_X10_retval_f2KPPi_1)))=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f2KPPi_1;
 }
 __attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
@@ -1168,20 +1186,52 @@
 __attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
     __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
+    {
+        ((void)((void)_X1pi_1));
+    }
+
+    {
+        ((void)(_X10_retval_f5PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f5PA0i_1;
 }
 __attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
     __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
+    {
+        ((void)((void)_X1pi_1));
+    }
+
+    {
+        ((void)(_X10_retval_f6PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f6PA0i_1;
 }
 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0);
 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
+    {
+        ((void)(_X10_retval_f8Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f8Fi_i__1;
 }
 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
+    {
+        ((void)(_X10_retval_f9Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f9Fi_i__1;
 }
 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
-}
-signed int _X3vtrFi___1(void){
-    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
+    {
+        ((void)(_X11_retval_f10Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X11_retval_f10Fi_i__1;
+}
+void _X3vtrFv___1(void){
     __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
     __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
@@ -1192,19 +1242,15 @@
     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
 }
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
-}
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
-}
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
-}
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
-    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
+void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
+void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
+}
+void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+}
+void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+}
+void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
+void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
 }
 signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
@@ -1215,6 +1261,5 @@
 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
 signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0)));
-signed int _X2adFi___1(void){
-    __attribute__ ((unused)) signed int _X10_retval_adi_1;
+void _X2adFv___1(void){
     __attribute__ ((used,unused)) signed int _X3ad1i_2;
     __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
@@ -1319,4 +1364,5 @@
 signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0));
 struct Vad {
+    __attribute__ ((unused)) signed int _X1xi_1;
     __attribute__ ((unused)) signed int :4;
     __attribute__ ((unused)) signed int :4;
@@ -1324,16 +1370,38 @@
 };
 static inline void _X12_constructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ?{} */);
+    }
+
 }
 static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1) /* ?{} */);
+    }
+
 }
 static inline void _X11_destructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ^?{} */);
+    }
+
 }
 static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){
     __attribute__ ((unused)) struct Vad _X4_retS3Vad_1;
     {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1));
+    }
+
+    {
         ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
     }
 
     return _X4_retS3Vad_1;
+}
+static inline void _X12_constructorFv_S3Vadi_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) signed int _X1xi_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X1xi_1) /* ?{} */);
+    }
+
 }
 __attribute__ (( noreturn )) void _X4fredFv___1(void){
@@ -1356,7 +1424,11 @@
     }
 
+    {
+        ((void)abort());
+    }
+
 }
 __attribute__ ((noreturn)) void _X4maryFv___1(void){
-    struct __attribute__ ((aligned(64))) S {
+    struct __attribute__ ((aligned(16))) S {
         signed int _X1ii_2;
     };
@@ -1415,3 +1487,7 @@
     }
 
-}
+    {
+        ((void)abort());
+    }
+
+}
Index: tests/.expect/attributes.x64.txt
===================================================================
--- tests/.expect/attributes.x64.txt	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/.expect/attributes.x64.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -1,2 +1,5 @@
+
+#pragma GCC diagnostic ignored "-Wattributes"
+;
 signed int _X2laFi___1(void){
     __attribute__ ((unused)) signed int _X10_retval_lai_1;
@@ -5,4 +8,9 @@
     }
 
+    {
+        ((void)(_X10_retval_lai_1=1) /* ?{} */);
+    }
+
+    return _X10_retval_lai_1;
 }
 struct __attribute__ ((unused)) __anonymous0 {
@@ -1159,8 +1167,18 @@
 __attribute__ ((unused)) signed int _X2f1Fi___1(void){
     __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+    {
+        ((void)(_X10_retval_f1i_1=1) /* ?{} */);
+    }
+
+    return _X10_retval_f1i_1;
 }
 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
     __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
+    {
+        ((void)((*((signed int ***)(&_X10_retval_f2KPPi_1)))=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f2KPPi_1;
 }
 __attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
@@ -1168,20 +1186,52 @@
 __attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
     __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
+    {
+        ((void)((void)_X1pi_1));
+    }
+
+    {
+        ((void)(_X10_retval_f5PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f5PA0i_1;
 }
 __attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
     __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
+    {
+        ((void)((void)_X1pi_1));
+    }
+
+    {
+        ((void)(_X10_retval_f6PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f6PA0i_1;
 }
 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0);
 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
+    {
+        ((void)(_X10_retval_f8Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f8Fi_i__1;
 }
 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
+    {
+        ((void)(_X10_retval_f9Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f9Fi_i__1;
 }
 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
-}
-signed int _X3vtrFi___1(void){
-    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
+    {
+        ((void)(_X11_retval_f10Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X11_retval_f10Fi_i__1;
+}
+void _X3vtrFv___1(void){
     __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
     __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
@@ -1192,19 +1242,15 @@
     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
 }
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
-}
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
-}
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
-}
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
-    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
+void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
+void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
+}
+void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+}
+void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+}
+void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
+void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
 }
 signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
@@ -1215,6 +1261,5 @@
 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
 signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0)));
-signed int _X2adFi___1(void){
-    __attribute__ ((unused)) signed int _X10_retval_adi_1;
+void _X2adFv___1(void){
     __attribute__ ((used,unused)) signed int _X3ad1i_2;
     __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
@@ -1319,4 +1364,5 @@
 signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0));
 struct Vad {
+    __attribute__ ((unused)) signed int _X1xi_1;
     __attribute__ ((unused)) signed int :4;
     __attribute__ ((unused)) signed int :4;
@@ -1324,16 +1370,38 @@
 };
 static inline void _X12_constructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ?{} */);
+    }
+
 }
 static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1) /* ?{} */);
+    }
+
 }
 static inline void _X11_destructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ^?{} */);
+    }
+
 }
 static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){
     __attribute__ ((unused)) struct Vad _X4_retS3Vad_1;
     {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1));
+    }
+
+    {
         ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
     }
 
     return _X4_retS3Vad_1;
+}
+static inline void _X12_constructorFv_S3Vadi_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) signed int _X1xi_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X1xi_1) /* ?{} */);
+    }
+
 }
 __attribute__ (( noreturn )) void _X4fredFv___1(void){
@@ -1356,7 +1424,11 @@
     }
 
+    {
+        ((void)abort());
+    }
+
 }
 __attribute__ ((noreturn)) void _X4maryFv___1(void){
-    struct __attribute__ ((aligned(64))) S {
+    struct __attribute__ ((aligned(16))) S {
         signed int _X1ii_2;
     };
@@ -1415,3 +1487,7 @@
     }
 
-}
+    {
+        ((void)abort());
+    }
+
+}
Index: tests/.expect/attributes.x86.txt
===================================================================
--- tests/.expect/attributes.x86.txt	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/.expect/attributes.x86.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -1,2 +1,5 @@
+
+#pragma GCC diagnostic ignored "-Wattributes"
+;
 signed int _X2laFi___1(void){
     __attribute__ ((unused)) signed int _X10_retval_lai_1;
@@ -5,4 +8,9 @@
     }
 
+    {
+        ((void)(_X10_retval_lai_1=1) /* ?{} */);
+    }
+
+    return _X10_retval_lai_1;
 }
 struct __attribute__ ((unused)) __anonymous0 {
@@ -1159,8 +1167,18 @@
 __attribute__ ((unused)) signed int _X2f1Fi___1(void){
     __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+    {
+        ((void)(_X10_retval_f1i_1=1) /* ?{} */);
+    }
+
+    return _X10_retval_f1i_1;
 }
 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
     __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
+    {
+        ((void)((*((signed int ***)(&_X10_retval_f2KPPi_1)))=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f2KPPi_1;
 }
 __attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
@@ -1168,20 +1186,52 @@
 __attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
     __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
+    {
+        ((void)((void)_X1pi_1));
+    }
+
+    {
+        ((void)(_X10_retval_f5PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f5PA0i_1;
 }
 __attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
     __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
+    {
+        ((void)((void)_X1pi_1));
+    }
+
+    {
+        ((void)(_X10_retval_f6PA0i_1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f6PA0i_1;
 }
 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0);
 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
+    {
+        ((void)(_X10_retval_f8Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f8Fi_i__1;
 }
 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
+    {
+        ((void)(_X10_retval_f9Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X10_retval_f9Fi_i__1;
 }
 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){
     __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
-}
-signed int _X3vtrFi___1(void){
-    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
+    {
+        ((void)(_X11_retval_f10Fi_i__1=((void*)((unsigned long int )0))) /* ?{} */);
+    }
+
+    return _X11_retval_f10Fi_i__1;
+}
+void _X3vtrFv___1(void){
     __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
     __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
@@ -1192,19 +1242,15 @@
     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
 }
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
-}
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
-}
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
-}
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
-    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
+void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
+void _X4ipd1Fv_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
+}
+void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+void _X4ipd2Fv_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+}
+void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+void _X4ipd3Fv_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+}
+void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
+void _X4ipd4Fv_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
 }
 signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
@@ -1215,6 +1261,5 @@
 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
 signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0)));
-signed int _X2adFi___1(void){
-    __attribute__ ((unused)) signed int _X10_retval_adi_1;
+void _X2adFv___1(void){
     __attribute__ ((used,unused)) signed int _X3ad1i_2;
     __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
@@ -1319,4 +1364,5 @@
 signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0));
 struct Vad {
+    __attribute__ ((unused)) signed int _X1xi_1;
     __attribute__ ((unused)) signed int :4;
     __attribute__ ((unused)) signed int :4;
@@ -1324,16 +1370,38 @@
 };
 static inline void _X12_constructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ?{} */);
+    }
+
 }
 static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1) /* ?{} */);
+    }
+
 }
 static inline void _X11_destructorFv_S3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1) /* ^?{} */);
+    }
+
 }
 static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) struct Vad _X4_srcS3Vad_1){
     __attribute__ ((unused)) struct Vad _X4_retS3Vad_1;
     {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X4_srcS3Vad_1._X1xi_1));
+    }
+
+    {
         ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
     }
 
     return _X4_retS3Vad_1;
+}
+static inline void _X12_constructorFv_S3Vadi_autogen___1(__attribute__ ((unused)) struct Vad *_X4_dstS3Vad_1, __attribute__ ((unused)) signed int _X1xi_1){
+    {
+        ((void)((*_X4_dstS3Vad_1)._X1xi_1=_X1xi_1) /* ?{} */);
+    }
+
 }
 __attribute__ (( noreturn )) void _X4fredFv___1(void){
@@ -1356,7 +1424,11 @@
     }
 
+    {
+        ((void)abort());
+    }
+
 }
 __attribute__ ((noreturn)) void _X4maryFv___1(void){
-    struct __attribute__ ((aligned(64))) S {
+    struct __attribute__ ((aligned(16))) S {
         signed int _X1ii_2;
     };
@@ -1415,3 +1487,7 @@
     }
 
-}
+    {
+        ((void)abort());
+    }
+
+}
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/Makefile.am	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -61,8 +61,4 @@
 # 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 = \
-	attributes \
-	collections/queue \
-	collections/sequence \
-	collections/stack \
 	collections/vector-demo \
 	concurrency/actors/dynamic \
@@ -97,7 +93,4 @@
 	concurrency/waituntil/repeat_close \
 	concurrency/waituntil/timeout \
-	configs/usage \
-	ctrl-flow/labelledExit \
-	ctrl-flow/loop_else \
 	designations \
 	exceptions/cardgame \
Index: tests/attributes.cfa
===================================================================
--- tests/attributes.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/attributes.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -1,10 +1,10 @@
-// 
+//
 // Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo
 //
 // The contents of this file are covered under the licence agreement in the
 // file "LICENCE" distributed with Cforall.
-// 
-// attributes.cfa -- 
-// 
+//
+// attributes.cfa --
+//
 // Author           : Peter A. Buhr
 // Created On       : Mon Feb  6 16:07:02 2017
@@ -12,10 +12,12 @@
 // Last Modified On : Fri Dec 20 15:32:21 2024
 // Update Count     : 53
-// 
+//
 
+#pragma GCC diagnostic ignored "-Wattributes"
 
 // label attribute
 int la() {
   L: __attribute__(( unused )) 1;
+  return 1;
 }
 
@@ -64,20 +66,20 @@
 // function_declarator
 __attribute__(( unused )) int f1() __attribute__(( used ));
-__attribute__(( unused )) int f1() {}
+__attribute__(( unused )) int f1() { return 1; }
 __attribute__(( unused )) int * __attribute__(( unused )) * const __attribute__(( unused )) f2() __attribute__(( used ));
-__attribute__(( unused )) int * __attribute__(( unused )) * const __attribute__(( unused )) f2() {}
+__attribute__(( unused )) int * __attribute__(( unused )) * const __attribute__(( unused )) f2() { return 0p; }
 __attribute__(( unused )) int (* __attribute__(( unused )) f3(int))[] __attribute__(( used ));
 __attribute__(( unused )) int ( __attribute__(( unused )) * __attribute__(( unused )) f4(int))[] __attribute__(( used ));
-__attribute__(( unused )) int (* __attribute__(( unused )) f5(int p))[] {}
-__attribute__(( unused )) int ( __attribute__(( unused )) * (f6)(int p))[] {}
+__attribute__(( unused )) int (* __attribute__(( unused )) f5(int p))[] { (void)p; return 0p; }
+__attribute__(( unused )) int ( __attribute__(( unused )) * (f6)(int p))[] { (void)p; return 0p; }
 __attribute__(( unused )) int (* __attribute__(( unused )) f7())(int) __attribute__(( used ));
-__attribute__(( unused )) int (* __attribute__(( unused )) f8())(int) {}
-__attribute__(( unused )) int ( __attribute__(( unused )) * f9())(int) {}
-__attribute__(( unused )) int ( __attribute__(( unused )) * (f10)())(int) {}
+__attribute__(( unused )) int (* __attribute__(( unused )) f8())(int) { return 0p; }
+__attribute__(( unused )) int ( __attribute__(( unused )) * f9())(int) { return 0p; }
+__attribute__(( unused )) int ( __attribute__(( unused )) * (f10)())(int) { return 0p; }
 
 
 // variable_type_redeclarator
 typedef int t1, t2, t3, t4, t5, t6, t7, t8;
-int vtr() {
+void vtr() {
     // redefine typedef name in new scope
     __attribute__(( unused )) int __attribute__(( unused )) t1 __attribute__(( used ));
@@ -92,19 +94,19 @@
 
 // identifier_parameter_declarator
-int ipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )),
+void ipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) q __attribute__(( unused )) );
-int ipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )),
+void ipd1( __attribute__(( unused )) int __attribute__(( unused )) p __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) q __attribute__(( unused )) ) {}
-int ipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )),
+void ipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) (* (q)) __attribute__(( unused )) );
-int ipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )),
+void ipd2( __attribute__(( unused )) int __attribute__(( unused )) * __attribute__(( unused )) p __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) (* (q)) __attribute__(( unused )) ) {}
-int ipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )),
+void ipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) ((q)[]) __attribute__(( unused )) );
-int ipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )),
+void ipd3( __attribute__(( unused )) int __attribute__(( unused )) p[] __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) ((q)[]) __attribute__(( unused )) ) {}
-int ipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )),
+void ipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) ((q)()) __attribute__(( unused )) );
-int ipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )),
+void ipd4( __attribute__(( unused )) int __attribute__(( unused )) p() __attribute__(( unused )),
 	  __attribute__(( unused )) int __attribute__(( unused )) ((q)()) __attribute__(( unused )) ) {}
 
@@ -122,5 +124,5 @@
 
 // abstract_declarator
-int ad() {
+void ad() {
     typeof( int __attribute__(( used )) ) ad1 __attribute__(( unused ));
     typeof( int __attribute__(( unused )) * __attribute__(( unused )) ) ad2 __attribute__(( unused ));
@@ -157,5 +159,5 @@
 // variable_abstract_declarator
 struct Vad {
-    int __attribute__(( unused ));
+    int __attribute__(( unused )) x;
     int __attribute__(( unused )) :4;
     int __attribute__(( unused )) :4, __attribute__(( unused )) :6;
@@ -174,8 +176,9 @@
 		3;
 	}
+	abort();
 }
 
 @[ noreturn ] void mary() {
-	@[aligned(64)] struct S { int i; };
+	@[aligned(16)] struct S { int i; };
 	int @[unused] i;
 	switch ( 3 ) {
@@ -187,4 +190,5 @@
 		3;
 	}
+	abort();
 }
 
Index: tests/collections/queue.cfa
===================================================================
--- tests/collections/queue.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/collections/queue.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -28,5 +28,5 @@
 	}
 	sout | "empty" | nl;
-	
+
 	for ( i; 10 ) {
 		add( fred, *new( 2 * i ) );
@@ -48,5 +48,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 10 ) {
 		add( fred, *new( 2 * i + 1 ) );
@@ -133,4 +133,5 @@
 		int j;
 	};
+	__attribute__((unused))
 	void ?{}( Mary & mary ) { abort(); }
 	void ?{}( Mary & mary, int p ) with( mary ) {
@@ -150,5 +151,5 @@
 	}
 	sout | "empty" | nl;
-	
+
 	for ( i; 10 ) {
 		add( mary, *new( 2 * i ) );
@@ -161,5 +162,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 9 ) {
 		delete( &drop( mary ) );
@@ -170,5 +171,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 10 ) {
 		add( mary, *new( 2 * i + 1 ) );
Index: tests/collections/sequence.cfa
===================================================================
--- tests/collections/sequence.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/collections/sequence.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -31,5 +31,5 @@
 	}
 	sout | "empty" | nl;
-	
+
 	for ( i; 10 ) {
 		add( fred, *new( 2 * i ) );
@@ -51,5 +51,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 10 ) {
 		addTail( fred, *new( 2 * i + 1 ) );
@@ -156,4 +156,5 @@
 		int j;
 	};
+	__attribute__((unused))
 	void ?{}( Mary & mary ) { abort(); }
 	void ?{}( Mary & mary, int p ) with( mary ) {
@@ -176,5 +177,5 @@
 	}
 	sout | "empty" | nl;
-	
+
 	for ( i; 10 ) {
 		add( mary, *new( 2 * i ) );
@@ -187,5 +188,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 9 ) {
 		delete( &dropHead( mary ) );
@@ -196,5 +197,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 10 ) {
 		addTail( mary, *new( 2 * i + 1 ) );
Index: tests/collections/stack.cfa
===================================================================
--- tests/collections/stack.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/collections/stack.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -28,5 +28,5 @@
 	}
 	sout | "empty" | nl;
-	
+
 	for ( i; 10 ) {
 		push( fred, *new( 2 * i ) );
@@ -39,5 +39,5 @@
 
 	sout | head( fred ).i | nl;
-	
+
 	for ( i; 9 ) {
 		delete( &pop( fred ) );
@@ -48,5 +48,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 10 ) {
 		push( fred, *new( 2 * i + 1 ) );
@@ -67,4 +67,5 @@
 		int j;
 	};
+	__attribute__((unused))
 	void ?{}( Mary & mary ) { abort(); }
 	void ?{}( Mary & mary, int p ) with( mary ) {
@@ -85,5 +86,5 @@
 	}
 	sout | "empty" | nl;
-	
+
 	for ( i; 10 ) {
 		push( mary, *new( 2 * i ) );
@@ -94,5 +95,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 9 ) {
 		delete( &pop( mary ) );
@@ -103,5 +104,5 @@
 	}
 	sout | nl;
-	
+
 	for ( i; 10 ) {
 		push( mary, *new( 2 * i + 1 ) );
Index: tests/collections/vector-demo.cfa
===================================================================
--- tests/collections/vector-demo.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/collections/vector-demo.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -96,4 +96,6 @@
       #endif
 
+        // forbid calling a function that returns permit by value
+      #ifdef TRY_RETURN_PERMIT_BYVAL_1
         // can declare function that returns permit (wish to forbid)
         vector_permit(float) g( vector( float ) & theVec ) {
@@ -101,9 +103,7 @@
         }
 
-        // forbid calling a function that returns permit by value
-      #ifdef TRY_RETURN_PERMIT_BYVAL_1
         vector_permit(float) ofG = g( v ); // Unique best alternative includes deleted identifier
       #endif
-        
+
         // allow declaration of permit, populating from exit
         vector_exit(float) h( vector( float ) & theVec ) {
Index: tests/configs/usage.cfa
===================================================================
--- tests/configs/usage.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/configs/usage.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -108,3 +108,4 @@
 
 // no used
-static int true_main( const char * path, const char * env[]) { return 0; }
+static int true_main( const char *, const char * []) { return 0; }
+__attribute__((unused)) static void check_main(const char *);
Index: tests/ctrl-flow/.expect/superfluous.txt
===================================================================
--- tests/ctrl-flow/.expect/superfluous.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
+++ tests/ctrl-flow/.expect/superfluous.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -0,0 +1,1 @@
+ctrl-flow/superfluous.cfa:8:1 error: else clause never executed for empty loop conditional.
Index: tests/ctrl-flow/labelledExit.cfa
===================================================================
--- tests/ctrl-flow/labelledExit.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/ctrl-flow/labelledExit.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -1,10 +1,10 @@
-// 
+//
 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
 //
 // The contents of this file are covered under the licence agreement in the
 // file "LICENCE" distributed with Cforall.
-// 
-// labelledExit.cfa -- 
-// 
+//
+// labelledExit.cfa --
+//
 // Author           : Peter A. Buhr
 // Created On       : Wed Aug 10 07:29:39 2016
@@ -12,129 +12,134 @@
 // Last Modified On : Fri Jan 17 14:18:15 2025
 // Update Count     : 14
-// 
+//
 
 int foo() {
-  	int i;
-  	int x, y;
+	int i = 0;
+	int x = 0, y = 0;
 
-  	x = 0; y = 0;
-
-  	// block, labelled exits
+	// block, labelled exits
 
   Block: {
-  		if ( x == y ) {
-  			for ( ; i < y; ) {
-  				y += 1;
-  				if ( y < 10 ) break Block;
-  			}
-  		}
-  	}
+		if ( x == y ) {
+			for ( ; i < y; ) {
+				y += 1;
+				if ( y < 10 ) break Block;
+			}
+		}
+	}
 
-  	// loops, labelled exits
+	// loops, labelled exits
 
-  w1: while ( y == 10 );
+  w1: while ( y == 10 ) break w1;
 
   w2: while ( x < 10 ) {
-  		while (y < 5 ) {
-  			if ( y == 3 ) break w2;
-  		}
-  		x += 1;
-  	}
+		while (y < 5 ) {
+			if ( y == 3 ) break w2;
+		}
+		x += 1;
+	}
 
   A: for ( i = 0; i < 10; i += 1 ) {
-  	  B: for ( i = 0; i < 10; i += 1 ) {
-  		  C: for ( i = 0; i < 10; i += 1 ) {
-  				goto A;
-  				goto B;
-  				goto C;
-  				continue A;
-  				continue B;
-  				continue C;
-  				continue;
-  				break A;
-  				break B;
-  				break C;
-  				break;
-  			}
-  		}
-  	}
+	  B: for ( i = 0; i < 10; i += 1 ) {
+		  C: for ( i = 0; i < 10; i += 1 ) {
+				goto A;
+				goto B;
+				goto C;
+				continue A;
+				continue B;
+				continue C;
+				continue;
+				break A;
+				break B;
+				break C;
+				break;
+			}
+		}
+	}
 
   D: for () {
-  		break D;
-  		continue D;
-  	}
+		break D;
+		continue D;
+	}
 
   Z : i += 1;
-  	goto Z;
+	goto Z;
   X: Y: for () {
-  		i += 1;
-  		if ( i > 5 ) continue X;
-  		if ( i < 5 ) break X;
-  		if ( i < 5 ) break Y;
-  		break;
-  	}
+		i += 1;
+		if ( i > 5 ) continue X;
+		if ( i < 5 ) break X;
+		if ( i < 5 ) break Y;
+		break;
+	}
   XX: for () {
-  	  YY: for () {
-  		  ZZ: for () {
-  				i += 1;
-  				if ( i > 5 ) continue XX;
-  				if ( i < 5 ) continue YY;
-  				if ( i < 5 ) continue ZZ;
-  				if ( i > 5 ) break XX;
-  				if ( i < 5 ) break YY;
-  				if ( i < 5 ) break ZZ;
-  				break;
-  			}
-  		}
-  	}
+	  YY: for () {
+		  ZZ: for () {
+				i += 1;
+				if ( i > 5 ) continue XX;
+				if ( i < 5 ) continue YY;
+				if ( i < 5 ) continue ZZ;
+				if ( i > 5 ) break XX;
+				if ( i < 5 ) break YY;
+				if ( i < 5 ) break ZZ;
+				break;
+			}
+		}
+	}
 
-  	for () ;
-  	for ( int i = 0 ;; ) ;
-  	for (  ; i < 0; ) ;
-  	for (  ; ; i += 1 ) ;
+	for () ;
+	for ( int i = 0 ;; ) ++i;
+	for (  ; i < 0; ) ;
+	for (  ; ; i += 1 ) ;
   L0:  L1:  L2:  L3:  L4:  L5:  L6:  L7:  L8:  L9:
   L10: L11: L12: L13: L14: L15: L16: L17: L18: L19:
   L20: L21: L22: L23: L24: L25: L26: L27: L28: L29:
   L31: L32: L33: L34:
-  	for () {
-  		break L0;
-  	}
+	for () {
+		break L0;
+		break L1;  break L2;  break L3;  break L4;  break L5;  break L6;
+		break L7;  break L8;  break L9;	 break L10; break L11; break L12;
+		break L13; break L14; break L15; break L16; break L17; break L18;
+		break L19; break L20; break L21; break L22; break L23; break L24;
+		break L25; break L26; break L27; break L28; break L29; break L31;
+		break L32; break L33; break L34;
+	}
 
-  	// switch/choose, labelled exits
+	// switch/choose, labelled exits
 
   Switch: switch ( i ) {
-  	  default:
-  		i += 1;
-  	  case 0:
-  		i += 1;
-  		break Switch;
-  	  case 1:
-  		switch ( i ) {
-  		  case 0:
-  			break Switch;
-  		  default:
-  			; break;
-  		}
-  	}
+	  default:
+		i += 1;
+		fallthrough;
+	  case 0:
+		i += 1;
+		break Switch;
+	  case 1:
+		switch ( i ) {
+		  case 0:
+			break Switch;
+		  default:
+			; break;
+		}
+	}
 
   Choose: choose ( i ) {
-  	  default:
-  		i += 1;
-  	  case 0:
-  		i += 1;
-  		break Choose;
-  	  case 1:
-  		choose ( i ) {
-  		  case 0:
-  			break;
-  		  default:
-  			break Choose;
-  		}
-  		fallthrough;
-  	  case 2:
-  		i += 1;
-  	}
+	  default:
+		i += 1;
+	  case 0:
+		i += 1;
+		break Choose;
+	  case 1:
+		choose ( i ) {
+		  case 0:
+			break;
+		  default:
+			break Choose;
+		}
+		fallthrough;
+	  case 2:
+		i += 1;
+	}
 
-  	// all nested control options, labelled exits
+	// all nested control options, labelled exits
 
   Comp: {
@@ -148,9 +153,9 @@
 								break Try;
 								break Comp;
-	  							break For;		continue For;
-	  							break While;	continue While;
-	  							break Do;		continue Do;
-	  							break If;
-	  							break Switch2;
+								break For;		continue For;
+								break While;	continue While;
+								break Do;		continue Do;
+								break If;
+								break Switch2;
 							} // switch
 						} // if
@@ -178,5 +183,5 @@
 }
 
-int main( int argc, char const *argv[] ) {
+int main() {
 	printf("done\n");
 }
Index: tests/ctrl-flow/loop_else.cfa
===================================================================
--- tests/ctrl-flow/loop_else.cfa	(revision 71ca5b97d7e34f0366ac870d33be64a807a5e74c)
+++ tests/ctrl-flow/loop_else.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -23,7 +23,7 @@
 
 	sout | nlOff;										// turn off auto newline
-	while () { sout | "empty"; break; } else { sout | "else"; }						sout | nl;
-	do { sout | "empty"; break; } while () else { sout | "else"; }					sout | nl;
-	for () { sout | "empty"; break; } else { sout | "else"; }						sout | nl | nl;
+	while ( true ) { sout | "empty"; break; } else { sout | "else"; }				sout | nl;
+	do { sout | "empty"; break; } while ( true ) else { sout | "else"; }			sout | nl;
+	for ( ; true ; ) { sout | "empty"; break; } else { sout | "else"; }				sout | nl | nl;
 
 	do { sout | "false"; } while (false) else { sout | "else"; }					sout | nl | nl;
Index: tests/ctrl-flow/superfluous.cfa
===================================================================
--- tests/ctrl-flow/superfluous.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
+++ tests/ctrl-flow/superfluous.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
@@ -0,0 +1,9 @@
+// Check the superfluous-else warning.
+
+void main() {
+	while () {
+		return;
+	} else {
+		abort();
+	}
+}
