Index: src/tests/.expect/gccExtensions.txt
===================================================================
--- src/tests/.expect/gccExtensions.txt	(revision 97203a781541c5171a8230e53fb35d6478544820)
+++ src/tests/.expect/gccExtensions.txt	(revision 89867822b1e53ca0a90b90a8a7bc198023ce7b55)
@@ -0,0 +1,164 @@
+extern void abort(void);
+extern int atexit(void (*__func)(void));
+extern void exit(int __status);
+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)((*___dst__P2sS_2).__a__i_2) /* ?{} */);
+        ((void)((*___dst__P2sS_2).__b__i_2) /* ?{} */);
+        ((void)((*___dst__P2sS_2).__c__i_2) /* ?{} */);
+    }
+    inline void ___constructor__F_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) /* ?{} */);
+    }
+    inline void ___destructor__F_P2sS_autogen___2(struct S *___dst__P2sS_2){
+        ((void)((*___dst__P2sS_2).__c__i_2) /* ^?{} */);
+        ((void)((*___dst__P2sS_2).__b__i_2) /* ^?{} */);
+        ((void)((*___dst__P2sS_2).__a__i_2) /* ^?{} */);
+    }
+    inline void ___constructor__F_P2sSi_autogen___2(struct S *___dst__P2sS_2, int __a__i_2){
+        ((void)((*___dst__P2sS_2).__a__i_2=__a__i_2) /* ?{} */);
+        ((void)((*___dst__P2sS_2).__b__i_2) /* ?{} */);
+        ((void)((*___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)((*___dst__P2sS_2).__a__i_2=__a__i_2) /* ?{} */);
+        ((void)((*___dst__P2sS_2).__b__i_2=__b__i_2) /* ?{} */);
+        ((void)((*___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)((*___dst__P2sS_2).__a__i_2=__a__i_2) /* ?{} */);
+        ((void)((*___dst__P2sS_2).__b__i_2=__b__i_2) /* ?{} */);
+        ((void)((*___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)((*___dst__P3ss2_2).__i__i_2) /* ?{} */);
+    }
+    inline void ___constructor__F_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) /* ?{} */);
+    }
+    inline void ___destructor__F_P3ss2_autogen___2(struct s2 *___dst__P3ss2_2){
+        ((void)((*___dst__P3ss2_2).__i__i_2) /* ^?{} */);
+    }
+    inline void ___constructor__F_P3ss2i_autogen___2(struct s2 *___dst__P3ss2_2, int __i__i_2){
+        ((void)((*___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)((*___dst__P3ss3_2).__i__i_2) /* ?{} */);
+    }
+    inline void ___constructor__F_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) /* ?{} */);
+    }
+    inline void ___destructor__F_P3ss3_autogen___2(struct s3 *___dst__P3ss3_2){
+        ((void)((*___dst__P3ss3_2).__i__i_2) /* ^?{} */);
+    }
+    inline void ___constructor__F_P3ss3i_autogen___2(struct s3 *___dst__P3ss3_2, int __i__i_2){
+        ((void)((*___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)((*___dst__P3ss4_2).__i__i_2) /* ?{} */);
+    }
+    inline void ___constructor__F_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) /* ?{} */);
+    }
+    inline void ___destructor__F_P3ss4_autogen___2(struct s4 *___dst__P3ss4_2){
+        ((void)((*___dst__P3ss4_2).__i__i_2) /* ^?{} */);
+    }
+    inline void ___constructor__F_P3ss4i_autogen___2(struct s4 *___dst__P3ss4_2, int __i__i_2){
+        ((void)((*___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))));
+}
