Index: src/tests/.expect/64/gccExtensions.txt
===================================================================
--- src/tests/.expect/64/gccExtensions.txt	(revision f1231f247470e4cd4d6125bdf604b4c94bbed41a)
+++ src/tests/.expect/64/gccExtensions.txt	(revision f1231f247470e4cd4d6125bdf604b4c94bbed41a)
@@ -0,0 +1,167 @@
+extern void *malloc(long unsigned int __size);
+extern void free(void *__ptr);
+extern void abort(void);
+extern int atexit(void (*__func)(void));
+extern void exit(int __status);
+extern int printf(const char *__restrict __format, ...);
+int main(int __argc__i_1, const char **__argv__PPCc_1){
+    asm ( "nop" :  :  :  );
+    asm ( "nop" :  :  :  );
+    asm ( "nop" :  :  :  );
+    double _Complex __c1__Xd_2;
+    double _Complex __c2__Xd_2;
+    const int __i1__Ci_2;
+    const int __i2__Ci_2;
+    const int __i3__Ci_2;
+    __extension__ const int __ex__Ci_2;
+    struct S {
+        __extension__ int __a__i_2;
+        __extension__ int __b__i_2;
+        __extension__ int __c__i_2;
+    };
+    inline struct S ___operator_assign__F2sS_P2sS2sS_autogen___2(struct S *___dst__P2sS_2, struct S ___src__2sS_2){
+        ((void)((*___dst__P2sS_2).__a__i_2=___src__2sS_2.__a__i_2));
+        ((void)((*___dst__P2sS_2).__b__i_2=___src__2sS_2.__b__i_2));
+        ((void)((*___dst__P2sS_2).__c__i_2=___src__2sS_2.__c__i_2));
+        return ((struct S )___src__2sS_2);
+    }
+    inline void ___constructor__F_P2sS_autogen___2(struct S *___dst__P2sS_2){
+        ((void)((*((int *)(&(*___dst__P2sS_2).__a__i_2)))) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__b__i_2)))) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__c__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P2sS2sS_autogen___2(struct S *___dst__P2sS_2, struct S ___src__2sS_2){
+        ((void)((*((int *)(&(*___dst__P2sS_2).__a__i_2)))=___src__2sS_2.__a__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__b__i_2)))=___src__2sS_2.__b__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__c__i_2)))=___src__2sS_2.__c__i_2) /* ?{} */);
+    }
+    inline void ___destructor__F_P2sS_autogen___2(struct S *___dst__P2sS_2){
+        ((void)((*((int *)(&(*___dst__P2sS_2).__c__i_2)))) /* ^?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__b__i_2)))) /* ^?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__a__i_2)))) /* ^?{} */);
+    }
+    inline void ___constructor__F_P2sSi_autogen___2(struct S *___dst__P2sS_2, int __a__i_2){
+        ((void)((*((int *)(&(*___dst__P2sS_2).__a__i_2)))=__a__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__b__i_2)))) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__c__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P2sSii_autogen___2(struct S *___dst__P2sS_2, int __a__i_2, int __b__i_2){
+        ((void)((*((int *)(&(*___dst__P2sS_2).__a__i_2)))=__a__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__b__i_2)))=__b__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__c__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P2sSiii_autogen___2(struct S *___dst__P2sS_2, int __a__i_2, int __b__i_2, int __c__i_2){
+        ((void)((*((int *)(&(*___dst__P2sS_2).__a__i_2)))=__a__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__b__i_2)))=__b__i_2) /* ?{} */);
+        ((void)((*((int *)(&(*___dst__P2sS_2).__c__i_2)))=__c__i_2) /* ?{} */);
+    }
+    int __i__i_2;
+    ((void)((*((int *)(&__i__i_2)))=__extension__ 3) /* ?{} */);
+    __extension__ int __a__i_2;
+    __extension__ int __b__i_2;
+    __extension__ int __c__i_2;
+    ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2));
+    ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2)));
+    ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2)));
+    inline int __f1__Fi___2(){
+    }
+    inline int __f2__Fi___2(){
+    }
+    int __s1__i_2;
+    int __s2__i_2;
+    int __t1___2;
+    int __t2___2;
+    volatile int __v1__Vi_2;
+    volatile int __v2__Vi_2;
+    int __a1__i_2;
+    const int __a2__Ci_2;
+    static const int __a3__Ci_2;
+    static const int __a4__Ci_2;
+    static const int __a5__Ci_2;
+    static const int __a6__Ci_2;
+    static const int __a7__Ci_2;
+    int *__p1__Pi_2;
+    int *__p2__Pi_2;
+    struct s1;
+    struct s2 {
+        int __i__i_2;
+    };
+    inline struct s2 ___operator_assign__F3ss2_P3ss23ss2_autogen___2(struct s2 *___dst__P3ss2_2, struct s2 ___src__3ss2_2){
+        ((void)((*___dst__P3ss2_2).__i__i_2=___src__3ss2_2.__i__i_2));
+        return ((struct s2 )___src__3ss2_2);
+    }
+    inline void ___constructor__F_P3ss2_autogen___2(struct s2 *___dst__P3ss2_2){
+        ((void)((*((int *)(&(*___dst__P3ss2_2).__i__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P3ss23ss2_autogen___2(struct s2 *___dst__P3ss2_2, struct s2 ___src__3ss2_2){
+        ((void)((*((int *)(&(*___dst__P3ss2_2).__i__i_2)))=___src__3ss2_2.__i__i_2) /* ?{} */);
+    }
+    inline void ___destructor__F_P3ss2_autogen___2(struct s2 *___dst__P3ss2_2){
+        ((void)((*((int *)(&(*___dst__P3ss2_2).__i__i_2)))) /* ^?{} */);
+    }
+    inline void ___constructor__F_P3ss2i_autogen___2(struct s2 *___dst__P3ss2_2, int __i__i_2){
+        ((void)((*((int *)(&(*___dst__P3ss2_2).__i__i_2)))=__i__i_2) /* ?{} */);
+    }
+    struct s3 {
+        int __i__i_2;
+    };
+    inline struct s3 ___operator_assign__F3ss3_P3ss33ss3_autogen___2(struct s3 *___dst__P3ss3_2, struct s3 ___src__3ss3_2){
+        ((void)((*___dst__P3ss3_2).__i__i_2=___src__3ss3_2.__i__i_2));
+        return ((struct s3 )___src__3ss3_2);
+    }
+    inline void ___constructor__F_P3ss3_autogen___2(struct s3 *___dst__P3ss3_2){
+        ((void)((*((int *)(&(*___dst__P3ss3_2).__i__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P3ss33ss3_autogen___2(struct s3 *___dst__P3ss3_2, struct s3 ___src__3ss3_2){
+        ((void)((*((int *)(&(*___dst__P3ss3_2).__i__i_2)))=___src__3ss3_2.__i__i_2) /* ?{} */);
+    }
+    inline void ___destructor__F_P3ss3_autogen___2(struct s3 *___dst__P3ss3_2){
+        ((void)((*((int *)(&(*___dst__P3ss3_2).__i__i_2)))) /* ^?{} */);
+    }
+    inline void ___constructor__F_P3ss3i_autogen___2(struct s3 *___dst__P3ss3_2, int __i__i_2){
+        ((void)((*((int *)(&(*___dst__P3ss3_2).__i__i_2)))=__i__i_2) /* ?{} */);
+    }
+    struct s3 __x1__3ss3_2;
+    ((void)___constructor__F_P3ss3_autogen___2(((struct s3 *)(&__x1__3ss3_2))));
+    struct s3 __y1__3ss3_2;
+    ((void)___constructor__F_P3ss3_autogen___2(((struct s3 *)(&__y1__3ss3_2))));
+    struct s4 {
+        int __i__i_2;
+    };
+    inline struct s4 ___operator_assign__F3ss4_P3ss43ss4_autogen___2(struct s4 *___dst__P3ss4_2, struct s4 ___src__3ss4_2){
+        ((void)((*___dst__P3ss4_2).__i__i_2=___src__3ss4_2.__i__i_2));
+        ((void)___destructor__F_P3ss3_autogen___2(((struct s3 *)(&__y1__3ss3_2))));
+        ((void)___destructor__F_P3ss3_autogen___2(((struct s3 *)(&__x1__3ss3_2))));
+        return ((struct s4 )___src__3ss4_2);
+    }
+    inline void ___constructor__F_P3ss4_autogen___2(struct s4 *___dst__P3ss4_2){
+        ((void)((*((int *)(&(*___dst__P3ss4_2).__i__i_2)))) /* ?{} */);
+    }
+    inline void ___constructor__F_P3ss43ss4_autogen___2(struct s4 *___dst__P3ss4_2, struct s4 ___src__3ss4_2){
+        ((void)((*((int *)(&(*___dst__P3ss4_2).__i__i_2)))=___src__3ss4_2.__i__i_2) /* ?{} */);
+    }
+    inline void ___destructor__F_P3ss4_autogen___2(struct s4 *___dst__P3ss4_2){
+        ((void)((*((int *)(&(*___dst__P3ss4_2).__i__i_2)))) /* ^?{} */);
+    }
+    inline void ___constructor__F_P3ss4i_autogen___2(struct s4 *___dst__P3ss4_2, int __i__i_2){
+        ((void)((*((int *)(&(*___dst__P3ss4_2).__i__i_2)))=__i__i_2) /* ?{} */);
+    }
+    struct s4 __x2__3ss4_2;
+    ((void)___constructor__F_P3ss4_autogen___2(((struct s4 *)(&__x2__3ss4_2))));
+    struct s4 __y2__3ss4_2;
+    ((void)___constructor__F_P3ss4_autogen___2(((struct s4 *)(&__y2__3ss4_2))));
+    int __m1__A0i_2[((long unsigned int )10)];
+    int __m2__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)];
+    int __m3__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)];
+    int _retVal0 = { 0 };
+    ((void)(_retVal0=0) /* ?{} */);
+    ((void)___destructor__F_P3ss4_autogen___2(((struct s4 *)(&__y2__3ss4_2))));
+    ((void)___destructor__F_P3ss4_autogen___2(((struct s4 *)(&__x2__3ss4_2))));
+    ((void)___destructor__F_P3ss3_autogen___2(((struct s3 *)(&__y1__3ss3_2))));
+    ((void)___destructor__F_P3ss3_autogen___2(((struct s3 *)(&__x1__3ss3_2))));
+    return ((int )_retVal0);
+    ((void)___destructor__F_P3ss4_autogen___2(((struct s4 *)(&__y2__3ss4_2))));
+    ((void)___destructor__F_P3ss4_autogen___2(((struct s4 *)(&__x2__3ss4_2))));
+    ((void)___destructor__F_P3ss3_autogen___2(((struct s3 *)(&__y1__3ss3_2))));
+    ((void)___destructor__F_P3ss3_autogen___2(((struct s3 *)(&__x1__3ss3_2))));
+}
Index: src/tests/.expect/64/math.txt
===================================================================
--- src/tests/.expect/64/math.txt	(revision f1231f247470e4cd4d6125bdf604b4c94bbed41a)
+++ src/tests/.expect/64/math.txt	(revision f1231f247470e4cd4d6125bdf604b4c94bbed41a)
@@ -0,0 +1,59 @@
+fabs: 1 1 1 1.41421 1.41421356237309505 1.41421356237309505
+fmod: 1 1 1 1 1 1
+remainder: -1 -1 -1
+remquo: 7 0.0999999 7 0.1 7 0.0999999999999999999
+div: 7 0.0999999 7 0.1 7 0.0999999999999999999
+fma: -2 -2 -2
+fdim: 2 2 2
+nan: nan nan nan
+exp: 2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2: 2 2 2
+expm1: 1.71828 1.71828182845905 1.71828182845904524
+log: 0 0 0 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2: 3 3 3
+log10: 2 2 2
+log1p: 0.693147 0.693147180559945 0.693147180559945309
+ilogb: 0 0 0
+logb: 3 3 3
+sqrt: 1 1 1 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt: 3 3 3
+hypot: 1.41421 1.4142135623731 1.41421356237309505
+pow: 1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614628i
+sin: 0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos: 0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan: 1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin: 1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos: 0 0 0 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan: 0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2: 0.785398 0.785398163397448 0.78539816339744831 atan: 0.785398 0.785398163397448 0.78539816339744831 sinh: 1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh: 1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh: 0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh: 0 0 0 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh: 0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh: inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf: 0.842701 0.842700792949715 0.842700792949714869
+erfc: 0.157299 0.157299207050285 0.157299207050285131
+lgamma: 1.79176 1.79175946922805 1.791759469228055
+lgamma: 1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma: 6 6 6
+floor: 1 1 1
+ceil: 2 2 2
+trunc: 3 3 3
+rint: 2 2 2
+rint: 2 2 2
+rint: 2 2 2
+lrint: 2 2 2
+llrint: 2 2 2
+nearbyint: 4 4 4
+round: 2 2 2
+round: 2 2 2
+round: 2 2 2
+lround: 2 2 2
+llround: 2 2 2
+copysign: -1 -1 -1
+frexp: 0.5 3 0.5 3 0.5 3
+ldexp: 8 8 8
+modf: 2 0.3 2 0.3 2 0.3 nextafter: 2 2 2
+nexttoward: 2 2 2
+scalbn: 16 16 16
+scalbln: 16 16 16
