Index: src/tests/.expect/32/attributes.txt
===================================================================
--- src/tests/.expect/32/attributes.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/32/attributes.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -1,3 +1,341 @@
-attributes.c:74 error: cannot redefine typedef: ptrdiff_t
-attributes.c:75 error: cannot redefine typedef: size_t
-make: *** [attributes] Error 1
+__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
+__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status);
+extern int printf(const char *__restrict __format, ...);
+int __la__Fi___1(){
+    int ___retval_la__i_1;
+    L: __attribute__ ((unused)) ((void)1);
+}
+__attribute__ ((unused)) struct __anonymous0 {
+};
+static inline void ___constructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1);
+static inline void ___constructor__F_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1);
+static inline void ___destructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1);
+static inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1);
+static inline void ___constructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){
+}
+static inline void ___constructor__F_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){
+}
+static inline void ___destructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){
+}
+static inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){
+    return ((struct __anonymous0 )___src__13s__anonymous0_1);
+}
+__attribute__ ((unused)) struct Agn1;
+__attribute__ ((unused)) struct Agn2 {
+};
+static inline void ___constructor__F_P5sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1);
+static inline void ___constructor__F_P5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1, struct Agn2 ___src__5sAgn2_1);
+static inline void ___destructor__F_P5sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1);
+static inline struct Agn2 ___operator_assign__F5sAgn2_P5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1, struct Agn2 ___src__5sAgn2_1);
+static inline void ___constructor__F_P5sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1){
+}
+static inline void ___constructor__F_P5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1, struct Agn2 ___src__5sAgn2_1){
+}
+static inline void ___destructor__F_P5sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1){
+}
+static inline struct Agn2 ___operator_assign__F5sAgn2_P5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1, struct Agn2 ___src__5sAgn2_1){
+    return ((struct Agn2 )___src__5sAgn2_1);
+}
+enum __attribute__ ((unused)) __anonymous1 {
+    __E1__C13e__anonymous1_1,
+};
+enum __attribute__ ((unused)) Agn3;
+enum __attribute__ ((packed)) Agn3 {
+    __E2__C5eAgn3_1,
+};
+__attribute__ ((unused)) struct __anonymous2;
+__attribute__ ((unused)) struct __anonymous3;
+struct Fdl {
+    __attribute__ ((unused)) int __f1__i_1;
+    __attribute__ ((unused)) int __f2__i_1;
+    __attribute__ ((unused,unused)) int __f3__i_1;
+    __attribute__ ((unused)) int __f4__i_1;
+    __attribute__ ((unused,unused)) int __f5__i_1;
+    __attribute__ ((used,packed)) int __f6__i_1;
+    __attribute__ ((used,unused,unused)) int __f7__i_1;
+    __attribute__ ((used,used,unused)) int __f8__i_1;
+    __attribute__ ((unused)) int __anonymous_object0;
+    __attribute__ ((unused,unused)) int *__f9__Pi_1;
+};
+static inline void ___constructor__F_P4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1);
+static inline void ___constructor__F_P4sFdl4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1, struct Fdl ___src__4sFdl_1);
+static inline void ___destructor__F_P4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1);
+static inline struct Fdl ___operator_assign__F4sFdl_P4sFdl4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1, struct Fdl ___src__4sFdl_1);
+static inline void ___constructor__F_P4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdl4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1, struct Fdl ___src__4sFdl_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=___src__4sFdl_1.__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=___src__4sFdl_1.__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=___src__4sFdl_1.__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=___src__4sFdl_1.__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))=___src__4sFdl_1.__f5__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))=___src__4sFdl_1.__f6__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))=___src__4sFdl_1.__f7__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))=___src__4sFdl_1.__f8__i_1) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))=___src__4sFdl_1.__f9__Pi_1) /* ?{} */);
+}
+static inline void ___destructor__F_P4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1){
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))) /* ^?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))) /* ^?{} */);
+}
+static inline struct Fdl ___operator_assign__F4sFdl_P4sFdl4sFdl_autogen___1(struct Fdl *___dst__P4sFdl_1, struct Fdl ___src__4sFdl_1){
+    ((void)((*___dst__P4sFdl_1).__f1__i_1=___src__4sFdl_1.__f1__i_1));
+    ((void)((*___dst__P4sFdl_1).__f2__i_1=___src__4sFdl_1.__f2__i_1));
+    ((void)((*___dst__P4sFdl_1).__f3__i_1=___src__4sFdl_1.__f3__i_1));
+    ((void)((*___dst__P4sFdl_1).__f4__i_1=___src__4sFdl_1.__f4__i_1));
+    ((void)((*___dst__P4sFdl_1).__f5__i_1=___src__4sFdl_1.__f5__i_1));
+    ((void)((*___dst__P4sFdl_1).__f6__i_1=___src__4sFdl_1.__f6__i_1));
+    ((void)((*___dst__P4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1));
+    ((void)((*___dst__P4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1));
+    ((void)((*___dst__P4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1));
+    return ((struct Fdl )___src__4sFdl_1);
+}
+static inline void ___constructor__F_P4sFdli_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdlii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliiii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliiiii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))=__f5__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliiiiii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))=__f5__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))=__f6__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliiiiiii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1, int __f7__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))=__f5__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))=__f6__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))=__f7__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliiiiiiii_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1, int __f7__i_1, int __f8__i_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))=__f5__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))=__f6__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))=__f7__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))=__f8__i_1) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))) /* ?{} */);
+}
+static inline void ___constructor__F_P4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__P4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1, int __f7__i_1, int __f8__i_1, int *__f9__Pi_1){
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f1__i_1)))=__f1__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f2__i_1)))=__f2__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f3__i_1)))=__f3__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f4__i_1)))=__f4__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f5__i_1)))=__f5__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f6__i_1)))=__f6__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f7__i_1)))=__f7__i_1) /* ?{} */);
+    ((void)((*((int *)(&(*___dst__P4sFdl_1).__f8__i_1)))=__f8__i_1) /* ?{} */);
+    ((void)((*((int **)(&(*___dst__P4sFdl_1).__f9__Pi_1)))=__f9__Pi_1) /* ?{} */);
+}
+__attribute__ ((unused)) int __f__Fi___1() asm ( "xyz" );
+__attribute__ ((used,used)) const int __vd1__Ci_1;
+__attribute__ ((used,unused)) const int __vd2__Ci_1;
+__attribute__ ((used,used,used,used)) const int *__vd3__PCi_1;
+__attribute__ ((used,used,unused,used,unused)) const int *__vd4__PCi_1;
+__attribute__ ((used,used,used)) const int __vd5__A0Ci_1[((unsigned int )5)];
+__attribute__ ((used,used,unused,used)) const int __vd6__A0Ci_1[((unsigned int )5)];
+__attribute__ ((used,used,used,used)) const int (*__vd7__PFCi___1)();
+__attribute__ ((used,used,unused,used,used)) const int (*__vd8__PFCi___1)();
+__attribute__ ((unused,used)) int __f1__Fi___1();
+__attribute__ ((unused)) int __f1__Fi___1(){
+    int ___retval_f1__i_1;
+}
+__attribute__ ((unused,unused,unused,used)) int **const __f2__FCPPi___1();
+__attribute__ ((unused,unused,unused)) int **const __f2__FCPPi___1(){
+    int **const ___retval_f2__CPPi_1;
+}
+__attribute__ ((unused,used,unused)) int (*__f3__FPA0i_i__1(int __anonymous_object1))[];
+__attribute__ ((unused,unused)) int (*__f3__FPA0i_i__1(int __p__i_1))[]{
+    int (*___retval_f3__PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) int (*__f4__FPFi_i____1())(int __anonymous_object2);
+__attribute__ ((unused,unused)) int (*__f4__FPFi_i____1())(int __anonymous_object3){
+    int (*___retval_f4__PFi_i__1)(int __anonymous_object4);
+}
+int __vtr__Fi___1(){
+    int ___retval_vtr__i_1;
+    __attribute__ ((unused,unused,used)) int __t1__i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) int **__t2__PPi_2;
+    __attribute__ ((unused,unused,unused)) int __t3__A0i_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) int **__t4__A0PPi_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused)) int __t5__Fi___2();
+    __attribute__ ((unused,unused,unused,unused)) int *__t6__FPi___2();
+}
+int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) int __p__i_1, __attribute__ ((unused,unused,unused)) int __q__i_1);
+int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) int __p__i_1, __attribute__ ((unused,unused,unused)) int __q__i_1){
+    int ___retval_ipd1__i_1;
+}
+int __ipd2__Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused)) int *__q__Pi_1);
+int __ipd2__Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused)) int *__q__Pi_1){
+    int ___retval_ipd2__i_1;
+}
+int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused)) int *__q__Pi_1);
+int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused)) int *__q__Pi_1){
+    int ___retval_ipd3__i_1;
+}
+int __ipd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__p__PFi___1)(), __attribute__ ((unused,unused,unused)) int (*__q__PFi___1)());
+int __ipd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__p__PFi___1)(), __attribute__ ((unused,unused,unused)) int (*__q__PFi___1)()){
+    int ___retval_ipd4__i_1;
+}
+int __tpr1__Fi_i__1(__attribute__ ((unused,unused,unused)) int __Foo__i_1);
+int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) int **__Foo__PPi_1);
+int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused)) int *__Foo__Pi_1);
+int __tpr4__Fi_PFi_Pi___1(__attribute__ ((unused,unused)) int (*__anonymous_object5)(__attribute__ ((unused,unused)) int __anonymous_object6[((unsigned int )5)]));
+int __tpr5__Fi_PFi____1(__attribute__ ((unused,unused,unused)) int (*__Foo__PFi___1)());
+int __tpr6__Fi_PFi____1(__attribute__ ((unused,unused,unused)) int (*__Foo__PFi___1)());
+int __tpr7__Fi_PFi_PFi_i____1(__attribute__ ((unused,unused)) int (*__anonymous_object7)(__attribute__ ((unused)) int (*__anonymous_object8)(__attribute__ ((unused,unused)) int __anonymous_object9)));
+int __ad__Fi___1(){
+    int ___retval_ad__i_1;
+    __attribute__ ((used,unused)) int __ad1__i_2;
+    __attribute__ ((unused,unused,unused)) int *__ad2__Pi_2;
+    __attribute__ ((unused,unused,unused)) int __ad3__A0i_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) int (*__ad4__PA0i_2)[((unsigned int )10)];
+    __attribute__ ((unused,unused,unused,unused,used)) int __ad5__i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) int __ad6__Fi___2();
+    ((void)sizeof(__attribute__ ((unused,unused)) int ));
+    ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) int **));
+    ((void)sizeof(__attribute__ ((unused,unused,unused)) int [5]));
+    ((void)sizeof(__attribute__ ((unused,unused,unused)) int (*)[10]));
+    ((void)sizeof(__attribute__ ((unused,unused,unused)) int ()));
+    __attribute__ ((unused)) struct __anonymous4 {
+        int __i__i_2;
+    };
+    inline void ___constructor__F_P13s__anonymous4_autogen___2(struct __anonymous4 *___dst__P13s__anonymous4_2){
+        ((void)((*((int *)(&(*___dst__P13s__anonymous4_2).__i__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P13s__anonymous413s__anonymous4_autogen___2(struct __anonymous4 *___dst__P13s__anonymous4_2, struct __anonymous4 ___src__13s__anonymous4_2){
+        ((void)((*((int *)(&(*___dst__P13s__anonymous4_2).__i__i_2)))=___src__13s__anonymous4_2.__i__i_2) /* ?{} */);
+    }
+    inline void ___destructor__F_P13s__anonymous4_autogen___2(struct __anonymous4 *___dst__P13s__anonymous4_2){
+        ((void)((*((int *)(&(*___dst__P13s__anonymous4_2).__i__i_2)))) /* ^?{} */);
+    }
+    inline struct __anonymous4 ___operator_assign__F13s__anonymous4_P13s__anonymous413s__anonymous4_autogen___2(struct __anonymous4 *___dst__P13s__anonymous4_2, struct __anonymous4 ___src__13s__anonymous4_2){
+        ((void)((*___dst__P13s__anonymous4_2).__i__i_2=___src__13s__anonymous4_2.__i__i_2));
+        return ((struct __anonymous4 )___src__13s__anonymous4_2);
+    }
+    inline void ___constructor__F_P13s__anonymous4i_autogen___2(struct __anonymous4 *___dst__P13s__anonymous4_2, int __i__i_2){
+        ((void)((*((int *)(&(*___dst__P13s__anonymous4_2).__i__i_2)))=__i__i_2) /* ?{} */);
+    }
+    ((void)sizeof(struct __anonymous4 ));
+    enum __attribute__ ((unused)) __anonymous5 {
+        __R__C13e__anonymous5_2,
+    };
+    inline void ___constructor__F_P13e__anonymous5_intrinsic___2(enum __anonymous5 *___dst__P13e__anonymous5_2){
+    }
+    inline void ___constructor__F_P13e__anonymous513e__anonymous5_intrinsic___2(enum __anonymous5 *___dst__P13e__anonymous5_2, enum __anonymous5 ___src__13e__anonymous5_2){
+        ((void)((*___dst__P13e__anonymous5_2)=___src__13e__anonymous5_2));
+    }
+    inline void ___destructor__F_P13e__anonymous5_intrinsic___2(enum __anonymous5 *___dst__P13e__anonymous5_2){
+    }
+    inline enum __anonymous5 ___operator_assign__F13e__anonymous5_P13e__anonymous513e__anonymous5_intrinsic___2(enum __anonymous5 *___dst__P13e__anonymous5_2, enum __anonymous5 ___src__13e__anonymous5_2){
+        return ((enum __anonymous5 )((*___dst__P13e__anonymous5_2)=___src__13e__anonymous5_2));
+    }
+    ((void)sizeof(enum __anonymous5 ));
+}
+int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object10, __attribute__ ((unused,unused,unused)) int *__anonymous_object11);
+int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) int **__anonymous_object12, __attribute__ ((unused,unused,unused,unused)) int **__anonymous_object13);
+int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object14, __attribute__ ((unused,unused,unused)) int *__anonymous_object15);
+int __apd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object16)(), __attribute__ ((unused,unused,unused)) int (*__anonymous_object17)());
+int __apd5__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object18)(__attribute__ ((unused)) int __anonymous_object19), __attribute__ ((unused,unused,unused)) int (*__anonymous_object20)(__attribute__ ((unused)) int __anonymous_object21));
+int __apd6__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object22)(), __attribute__ ((unused,unused,unused)) int (*__anonymous_object23)());
+int __apd7__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object24)(__attribute__ ((unused)) int __anonymous_object25), __attribute__ ((unused,unused,unused)) int (*__anonymous_object26)(__attribute__ ((unused)) int __anonymous_object27));
+struct Vad {
+    __attribute__ ((unused)) int __anonymous_object28;
+    __attribute__ ((unused,unused)) int *__anonymous_object29;
+    __attribute__ ((unused,unused)) int __anonymous_object30[((unsigned int )10)];
+    __attribute__ ((unused,unused)) int (*__anonymous_object31)();
+};
+static inline void ___constructor__F_P4sVad_autogen___1(struct Vad *___dst__P4sVad_1);
+static inline void ___constructor__F_P4sVad4sVad_autogen___1(struct Vad *___dst__P4sVad_1, struct Vad ___src__4sVad_1);
+static inline void ___destructor__F_P4sVad_autogen___1(struct Vad *___dst__P4sVad_1);
+static inline struct Vad ___operator_assign__F4sVad_P4sVad4sVad_autogen___1(struct Vad *___dst__P4sVad_1, struct Vad ___src__4sVad_1);
+static inline void ___constructor__F_P4sVad_autogen___1(struct Vad *___dst__P4sVad_1){
+}
+static inline void ___constructor__F_P4sVad4sVad_autogen___1(struct Vad *___dst__P4sVad_1, struct Vad ___src__4sVad_1){
+}
+static inline void ___destructor__F_P4sVad_autogen___1(struct Vad *___dst__P4sVad_1){
+}
+static inline struct Vad ___operator_assign__F4sVad_P4sVad4sVad_autogen___1(struct Vad *___dst__P4sVad_1, struct Vad ___src__4sVad_1){
+    return ((struct Vad )___src__4sVad_1);
+}
Index: src/tests/.expect/64/attributes.txt
===================================================================
--- src/tests/.expect/64/attributes.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/64/attributes.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -9,5 +9,5 @@
     L: __attribute__ ((unused)) ((void)1);
 }
-struct __attribute__ ((unused)) __anonymous0 {
+__attribute__ ((unused)) struct __anonymous0 {
 };
 static inline void ___constructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1);
@@ -24,6 +24,6 @@
     return ((struct __anonymous0 )___src__13s__anonymous0_1);
 }
-struct __attribute__ ((unused)) Agn1;
-struct __attribute__ ((unused)) Agn2 {
+__attribute__ ((unused)) struct Agn1;
+__attribute__ ((unused)) struct Agn2 {
 };
 static inline void ___constructor__F_P5sAgn2_autogen___1(struct Agn2 *___dst__P5sAgn2_1);
@@ -47,6 +47,6 @@
     __E2__C5eAgn3_1,
 };
-struct __attribute__ ((unused)) __anonymous2;
-struct __attribute__ ((unused)) __anonymous3;
+__attribute__ ((unused)) struct __anonymous2;
+__attribute__ ((unused)) struct __anonymous3;
 struct Fdl {
     __attribute__ ((unused)) int __f1__i_1;
@@ -234,10 +234,4 @@
     int (*___retval_f4__PFi_i__1)(int __anonymous_object4);
 }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(long unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit0(void (*__func)(void), void *__anonymous_object5, void *__anonymous_object6);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status);
-__attribute__ ((format(printf, 1, 2))) extern int printf(const char *__restrict __format, ...);
 int __vtr__Fi___1(){
     int ___retval_vtr__i_1;
@@ -268,8 +262,8 @@
 int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) int **__Foo__PPi_1);
 int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused)) int *__Foo__Pi_1);
-int __tpr4__Fi_PFi_Pi___1(__attribute__ ((unused,unused)) int (*__anonymous_object7)(__attribute__ ((unused,unused)) int __anonymous_object8[((long unsigned int )5)]));
+int __tpr4__Fi_PFi_Pi___1(__attribute__ ((unused,unused)) int (*__anonymous_object5)(__attribute__ ((unused,unused)) int __anonymous_object6[((long unsigned int )5)]));
 int __tpr5__Fi_PFi____1(__attribute__ ((unused,unused,unused)) int (*__Foo__PFi___1)());
 int __tpr6__Fi_PFi____1(__attribute__ ((unused,unused,unused)) int (*__Foo__PFi___1)());
-int __tpr7__Fi_PFi_PFi_i____1(__attribute__ ((unused,unused)) int (*__anonymous_object9)(__attribute__ ((unused)) int (*__anonymous_object10)(__attribute__ ((unused,unused)) int __anonymous_object11)));
+int __tpr7__Fi_PFi_PFi_i____1(__attribute__ ((unused,unused)) int (*__anonymous_object7)(__attribute__ ((unused)) int (*__anonymous_object8)(__attribute__ ((unused,unused)) int __anonymous_object9)));
 int __ad__Fi___1(){
     int ___retval_ad__i_1;
@@ -285,5 +279,5 @@
     ((void)sizeof(__attribute__ ((unused,unused,unused)) int (*)[10]));
     ((void)sizeof(__attribute__ ((unused,unused,unused)) int ()));
-    struct __attribute__ ((unused)) __anonymous4 {
+    __attribute__ ((unused)) struct __anonymous4 {
         int __i__i_2;
     };
@@ -320,16 +314,16 @@
     ((void)sizeof(enum __anonymous5 ));
 }
-int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object12, __attribute__ ((unused,unused,unused)) int *__anonymous_object13);
-int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) int **__anonymous_object14, __attribute__ ((unused,unused,unused,unused)) int **__anonymous_object15);
-int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object16, __attribute__ ((unused,unused,unused)) int *__anonymous_object17);
-int __apd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object18)(), __attribute__ ((unused,unused,unused)) int (*__anonymous_object19)());
-int __apd5__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object20)(__attribute__ ((unused)) int __anonymous_object21), __attribute__ ((unused,unused,unused)) int (*__anonymous_object22)(__attribute__ ((unused)) int __anonymous_object23));
-int __apd6__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object24)(), __attribute__ ((unused,unused,unused)) int (*__anonymous_object25)());
-int __apd7__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object26)(__attribute__ ((unused)) int __anonymous_object27), __attribute__ ((unused,unused,unused)) int (*__anonymous_object28)(__attribute__ ((unused)) int __anonymous_object29));
+int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object10, __attribute__ ((unused,unused,unused)) int *__anonymous_object11);
+int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) int **__anonymous_object12, __attribute__ ((unused,unused,unused,unused)) int **__anonymous_object13);
+int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object14, __attribute__ ((unused,unused,unused)) int *__anonymous_object15);
+int __apd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object16)(), __attribute__ ((unused,unused,unused)) int (*__anonymous_object17)());
+int __apd5__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object18)(__attribute__ ((unused)) int __anonymous_object19), __attribute__ ((unused,unused,unused)) int (*__anonymous_object20)(__attribute__ ((unused)) int __anonymous_object21));
+int __apd6__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object22)(), __attribute__ ((unused,unused,unused)) int (*__anonymous_object23)());
+int __apd7__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object24)(__attribute__ ((unused)) int __anonymous_object25), __attribute__ ((unused,unused,unused)) int (*__anonymous_object26)(__attribute__ ((unused)) int __anonymous_object27));
 struct Vad {
-    __attribute__ ((unused)) int __anonymous_object30;
-    __attribute__ ((unused,unused)) int *__anonymous_object31;
-    __attribute__ ((unused,unused)) int __anonymous_object32[((long unsigned int )10)];
-    __attribute__ ((unused,unused)) int (*__anonymous_object33)();
+    __attribute__ ((unused)) int __anonymous_object28;
+    __attribute__ ((unused,unused)) int *__anonymous_object29;
+    __attribute__ ((unused,unused)) int __anonymous_object30[((long unsigned int )10)];
+    __attribute__ ((unused,unused)) int (*__anonymous_object31)();
 };
 static inline void ___constructor__F_P4sVad_autogen___1(struct Vad *___dst__P4sVad_1);
Index: src/tests/.expect/castError.txt
===================================================================
--- src/tests/.expect/castError.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/castError.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -39,3 +39,2 @@
 
 
-make: *** [castError] Error 1
Index: src/tests/.expect/completeTypeError.txt
===================================================================
--- src/tests/.expect/completeTypeError.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/completeTypeError.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -41,3 +41,2 @@
 
 
-make: *** [completeTypeError] Error 1
Index: src/tests/.expect/constant0-1DP.txt
===================================================================
--- src/tests/.expect/constant0-1DP.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/constant0-1DP.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -31,3 +31,2 @@
 constant0-1.c:50 error: duplicate object definition for x: const pointer to pointer to signed int
 constant0-1.c:50 error: duplicate object definition for 0: pointer to pointer to signed int
-make: *** [constant0-1DP] Error 1
Index: src/tests/.expect/constant0-1NDDP.txt
===================================================================
--- src/tests/.expect/constant0-1NDDP.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/constant0-1NDDP.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -15,3 +15,2 @@
 constant0-1.c:67 error: duplicate object definition for x: const pointer to signed int
 constant0-1.c:67 error: duplicate object definition for 0: const pointer to signed int
-make: *** [constant0-1NDDP] Error 1
Index: src/tests/.expect/declarationErrors.txt
===================================================================
--- src/tests/.expect/declarationErrors.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/declarationErrors.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -67,3 +67,2 @@
 
 
-make: *** [declarationErrors] Error 1
Index: src/tests/.expect/dtor-early-exit-ERR1.txt
===================================================================
--- src/tests/.expect/dtor-early-exit-ERR1.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/dtor-early-exit-ERR1.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -1,3 +1,1 @@
 dtor-early-exit.c:142 error: jump to label 'L1' crosses initialization of y Branch (Goto)
-
-make: *** [dtor-early-exit-ERR1] Error 1
Index: src/tests/.expect/dtor-early-exit-ERR2.txt
===================================================================
--- src/tests/.expect/dtor-early-exit-ERR2.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/dtor-early-exit-ERR2.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -1,3 +1,1 @@
 dtor-early-exit.c:142 error: jump to label 'L2' crosses initialization of y Branch (Goto)
-
-make: *** [dtor-early-exit-ERR2] Error 1
Index: src/tests/.expect/memberCtors-ERR1.txt
===================================================================
--- src/tests/.expect/memberCtors-ERR1.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/memberCtors-ERR1.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -1,2 +1,1 @@
 memberCtors.c:62 error: in void ?{}(B *b), field a2 used before being constructed
-make: *** [memberCtors-ERR1] Error 1
Index: src/tests/.expect/scopeErrors.txt
===================================================================
--- src/tests/.expect/scopeErrors.txt	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.expect/scopeErrors.txt	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -7,4 +7,2 @@
   with body 
     CompoundStmt
-
-make: *** [scopeErrors] Error 1
Index: src/tests/.gitignore
===================================================================
--- src/tests/.gitignore	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/.gitignore	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -1,1 +1,2 @@
 .out/
+.err/
Index: src/tests/Makefile.am
===================================================================
--- src/tests/Makefile.am	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/Makefile.am	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -29,5 +29,6 @@
 # applies to both programs
 EXTRA_FLAGS =
-CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ ${EXTRA_FLAGS}
+BUILD_FLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ ${EXTRA_FLAGS}
+CFLAGS = 2> .err/${@}.log ${BUILD_FLAGS}
 CC = @CFA_BINDIR@/@CFA_NAME@
 
@@ -52,5 +53,5 @@
 
 .dummy : .dummy.c
-	${CC} ${CFLAGS} -XCFA -n ${<} -o ${@}
+	${CC} ${BUILD_FLAGS} -XCFA -n ${<} -o ${@}				#don't use CFLAGS, this rule is not a real test
 
 constant0-1DP : constant0-1.c
Index: src/tests/Makefile.in
===================================================================
--- src/tests/Makefile.in	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/Makefile.in	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -125,5 +125,5 @@
 CFA_NAME = @CFA_NAME@
 CFA_PREFIX = @CFA_PREFIX@
-CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ ${EXTRA_FLAGS}
+CFLAGS = 2> .err/${@}.log ${BUILD_FLAGS}
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -232,4 +232,5 @@
 # applies to both programs
 EXTRA_FLAGS = 
+BUILD_FLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ ${EXTRA_FLAGS}
 fstream_test_SOURCES = fstream_test.c
 vector_test_SOURCES = vector/vector_int.c vector/array.c vector/vector_test.c
@@ -670,5 +671,5 @@
 
 .dummy : .dummy.c
-	${CC} ${CFLAGS} -XCFA -n ${<} -o ${@}
+	${CC} ${BUILD_FLAGS} -XCFA -n ${<} -o ${@}				#don't use CFLAGS, this rule is not a real test
 
 constant0-1DP : constant0-1.c
Index: src/tests/attributes.c
===================================================================
--- src/tests/attributes.c	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/attributes.c	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -68,19 +68,4 @@
 __attribute__(( unused )) int (* __attribute__(( unused )) f4())(int) __attribute__(( used ));
 __attribute__(( unused )) int (* __attribute__(( unused )) f4())(int) {}
-
-#ifdef __CFA__
-extern "C" {
-#endif // __CFA__
-typedef long int ptrdiff_t;
-typedef long unsigned int size_t;
-extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-extern int atexit0 (void (*__func) (void), void *, void *) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-extern int printf (__const char *__restrict __format, ...) __attribute__ ((format (printf, 1, 2)));
-#ifdef __CFA__
-}
-#endif // __CFA__
 
 
Index: src/tests/test.py
===================================================================
--- src/tests/test.py	(revision 6a8ac0b3751e2c2cb5570243c8d6385e68ea5893)
+++ src/tests/test.py	(revision 89a9be213c480482276778cc720c86fc31221971)
@@ -13,4 +13,5 @@
 import stat
 import sys
+import multiprocessing
 
 ################################################################################
@@ -26,5 +27,10 @@
 def getMachineType():
 	sh('echo "void ?{}(int*a,int b){}int main(){return 0;}" > .dummy.c')
-	sh("make .dummy", print2stdout=False)
+	ret, out = sh("make .dummy", print2stdout=False)
+	if ret != 0:
+		print("Failed to identify architecture:")
+		print(out)
+		print("Stopping")
+		sys.exit(1)
 	_, out = sh("file .dummy", print2stdout=False)
 	sh("rm -f .dummy.c > /dev/null 2>&1")
@@ -115,4 +121,5 @@
 	# find the output file based on the test name and options flag
 	out_file = (".out/%s.log" % test.name) if not generate else (".expect/%s.txt" % test.path)
+	err_file = ".err/%s.log" % test.name
 
 	# remove any outputs from the previous tests to prevent side effects
@@ -137,9 +144,13 @@
 			sh("cat %s > %s" % (test.name, out_file), dry_run)
 
+	else :
+		# command failed save the log to less temporary file
+		sh("mv %s %s" % (err_file, out_file), dry_run)
+
 	retcode = 0
 	error = None
 
-	# fix output to prevent make depth to cause issues
-	fix_MakeLevel(out_file)
+	# # fix output to prevent make depth to cause issues
+	# fix_MakeLevel(out_file)
 
 	if generate :
@@ -152,5 +163,7 @@
 	else :
 		# diff the output of the files
-		diff_cmd = ("diff --old-group-format='\t\tmissing lines :\n"
+		diff_cmd = ("diff --ignore-all-space "
+					"--ignore-blank-lines "
+					"--old-group-format='\t\tmissing lines :\n"
 					"%%<' \\\n"
 					"--new-group-format='\t\tnew lines :\n"
@@ -212,5 +225,5 @@
 
 	#make sure the required folder are present
-	sh('mkdir -p .out .expect', dry_run)
+	sh('mkdir -p .out .expect .err', dry_run)
 
 	if generate :
@@ -309,9 +322,11 @@
 # check if the user already passed in a number of jobs for multi-threading
 make_flags = environ.get('MAKEFLAGS')
-make_jobs_fds = re.search("--jobserver-fds=\s*([0-9]+),([0-9]+)", make_flags) if make_flags else None
+make_jobs_fds = re.search("--jobserver-(auth|fds)=\s*([0-9]+),([0-9]+)", make_flags) if make_flags else None
 if make_jobs_fds :
-	tokens = os.read(int(make_jobs_fds.group(1)), 1024)
+	tokens = os.read(int(make_jobs_fds.group(2)), 1024)
 	options.jobs = len(tokens)
-	os.write(int(make_jobs_fds.group(2)), tokens)
+	os.write(int(make_jobs_fds.group(3)), tokens)
+else :
+	options.jobs = multiprocessing.cpu_count()
 
 # make sure we have a valid number of jobs that corresponds to user input
@@ -320,4 +335,6 @@
 	sys.exit(1)
 
+options.jobs = min( options.jobs, len(tests) )
+
 print('Running (%s) on %i cores' % ("debug" if options.debug else "no debug", options.jobs))
 make_cmd = "make" if make_flags else ("make -j%i" % options.jobs)
