Index: src/tests/.expect/64/functions.txt
===================================================================
--- src/tests/.expect/64/functions.txt	(revision 8eb348a347301e6734e6bbd0827acd993a3db4f7)
+++ src/tests/.expect/64/functions.txt	(revision 8eb348a347301e6734e6bbd0827acd993a3db4f7)
@@ -0,0 +1,249 @@
+void __h__F___1(void){
+}
+signed int __f__Fi_PFi__PFi_i_PFi__PFi_i_PF____1(signed int (*__anonymous_object0)(void), signed int (*__anonymous_object1)(signed int __anonymous_object2), signed int (*__anonymous_object3)(void), signed int (*__anonymous_object4)(signed int __anonymous_object5), void (*__g__PF___1)(void)){
+    __attribute__ ((unused)) signed int ___retval_f__i_1;
+    ((void)(*__g__PF___1)());
+    ((void)__g__PF___1());
+    ((void)(__g__PF___1=__h__F___1));
+}
+signed int __f1__Fi___1(){
+    __attribute__ ((unused)) signed int ___retval_f1__i_1;
+}
+signed int __f2__Fi___1(){
+    __attribute__ ((unused)) signed int ___retval_f2__i_1;
+}
+signed int (*__f3__FPFi_____1())(){
+    __attribute__ ((unused)) signed int (*___retval_f3__PFi___1)();
+}
+signed int *__f4__FPi___1(){
+    __attribute__ ((unused)) signed int *___retval_f4__Pi_1;
+}
+signed int (*__f5__FPFi_____1())(){
+    __attribute__ ((unused)) signed int (*___retval_f5__PFi___1)();
+}
+signed int *__f6__FPi___1(){
+    __attribute__ ((unused)) signed int *___retval_f6__Pi_1;
+}
+signed int *__f7__FPi___1(){
+    __attribute__ ((unused)) signed int *___retval_f7__Pi_1;
+}
+signed int **__f8__FPPi___1(){
+    __attribute__ ((unused)) signed int **___retval_f8__PPi_1;
+}
+signed int *const *__f9__FPCPi___1(){
+    __attribute__ ((unused)) signed int *const *___retval_f9__PCPi_1;
+}
+signed int (*__f10__FPA0i___1())[]{
+    __attribute__ ((unused)) signed int (*___retval_f10__PA0i_1)[];
+}
+signed int (*__f11__FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*___retval_f11__PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int (*__f12__FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*___retval_f12__PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int __fII1__Fi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) signed int ___retval_fII1__i_1;
+}
+const signed int __fII2__FCi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) const signed int ___retval_fII2__Ci_1;
+}
+extern signed int __fII3__Fi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) signed int ___retval_fII3__i_1;
+}
+extern const signed int __fII4__FCi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) const signed int ___retval_fII4__Ci_1;
+}
+signed int *__fII5__FPi___1(){
+    __attribute__ ((unused)) signed int *___retval_fII5__Pi_1;
+}
+signed int *const __fII6__FCPi___1(){
+    __attribute__ ((unused)) signed int *const ___retval_fII6__CPi_1;
+}
+const signed long int *__fII7__FPCl___1(){
+    __attribute__ ((unused)) const signed long int *___retval_fII7__PCl_1;
+}
+static const signed long int *__fII8__FPCl___1(){
+    __attribute__ ((unused)) const signed long int *___retval_fII8__PCl_1;
+}
+static const signed long int *__fII9__FPCl___1(){
+    __attribute__ ((unused)) const signed long int *___retval_fII9__PCl_1;
+}
+signed int __fO1__Fi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) signed int ___retval_fO1__i_1;
+}
+signed int __fO2__Fi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) signed int ___retval_fO2__i_1;
+}
+const signed int __fO3__FCi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) const signed int ___retval_fO3__Ci_1;
+}
+extern signed int __fO4__Fi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) signed int ___retval_fO4__i_1;
+}
+extern const signed int __fO5__FCi_i__1(signed int __i__i_1){
+    __attribute__ ((unused)) const signed int ___retval_fO5__Ci_1;
+}
+signed int __f__Fi___1(void);
+signed int __f__Fi_i__1(signed int __anonymous_object6);
+signed int __f__Fi___1(void){
+    __attribute__ ((unused)) signed int ___retval_f__i_1;
+}
+signed int __f__Fi_i__1(signed int __anonymous_object7){
+    __attribute__ ((unused)) signed int ___retval_f__i_1;
+}
+signed int __f__Fi___1(void);
+struct _tuple2_ {
+};
+static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_16ttuple_param_2_0, unsigned long int _alignof_16ttuple_param_2_0, unsigned long int _sizeof_16ttuple_param_2_1, unsigned long int _alignof_16ttuple_param_2_1){
+    ((void)((*_sizeof__tuple2_)=0));
+    ((void)((*_alignof__tuple2_)=1));
+    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_0));
+    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_0));
+
+    if ( ((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_16ttuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)))));
+
+    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_1));
+    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_1));
+
+    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
+
+}
+struct _conc__tuple2_0 {
+    signed int field_0;
+    signed int field_1;
+};
+struct _conc__tuple2_0 __f__FTii____1(void);
+struct _conc__tuple2_0 __f__FTii__ii__1(signed int __anonymous_object8, signed int __x__i_1);
+struct _conc__tuple2_0 __f__FTii____1(void){
+    __attribute__ ((unused)) struct _conc__tuple2_0 ___retval_f__Tii__1 = {  };
+}
+struct _conc__tuple2_0 __f__FTii__ii__1(signed int __anonymous_object9, signed int __x__i_1){
+    __attribute__ ((unused)) struct _conc__tuple2_0 ___retval_f__Tii__1 = {  };
+}
+struct _tuple3_ {
+};
+static inline void _layoutof__tuple3_(unsigned long int *_sizeof__tuple3_, unsigned long int *_alignof__tuple3_, unsigned long int *_offsetof__tuple3_, unsigned long int _sizeof_16ttuple_param_3_0, unsigned long int _alignof_16ttuple_param_3_0, unsigned long int _sizeof_16ttuple_param_3_1, unsigned long int _alignof_16ttuple_param_3_1, unsigned long int _sizeof_16ttuple_param_3_2, unsigned long int _alignof_16ttuple_param_3_2){
+    ((void)((*_sizeof__tuple3_)=0));
+    ((void)((*_alignof__tuple3_)=1));
+    ((void)(_offsetof__tuple3_[0]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_16ttuple_param_3_0));
+    if ( ((*_alignof__tuple3_)<_alignof_16ttuple_param_3_0) ) ((void)((*_alignof__tuple3_)=_alignof_16ttuple_param_3_0));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_16ttuple_param_3_1-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_16ttuple_param_3_1-((*_sizeof__tuple3_)&(_alignof_16ttuple_param_3_1-1)))));
+
+    ((void)(_offsetof__tuple3_[1]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_16ttuple_param_3_1));
+    if ( ((*_alignof__tuple3_)<_alignof_16ttuple_param_3_1) ) ((void)((*_alignof__tuple3_)=_alignof_16ttuple_param_3_1));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_16ttuple_param_3_2-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_16ttuple_param_3_2-((*_sizeof__tuple3_)&(_alignof_16ttuple_param_3_2-1)))));
+
+    ((void)(_offsetof__tuple3_[2]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_16ttuple_param_3_2));
+    if ( ((*_alignof__tuple3_)<_alignof_16ttuple_param_3_2) ) ((void)((*_alignof__tuple3_)=_alignof_16ttuple_param_3_2));
+
+    if ( ((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)) ) ((void)((*_sizeof__tuple3_)+=((*_alignof__tuple3_)-((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)))));
+
+}
+struct _conc__tuple3_1 {
+    signed int field_0;
+    signed int field_1;
+    signed int field_2;
+};
+struct _conc__tuple3_1 __f__FTiii____1(void);
+struct _conc__tuple3_1 __f__FTiii__iii__1(signed int __anonymous_object10, signed int __x__i_1, signed int __anonymous_object11);
+struct _conc__tuple3_1 __f__FTiii____1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_1 ___retval_f__Tiii__1 = {  };
+}
+struct _conc__tuple3_1 __f__FTiii__iii__1(signed int __anonymous_object12, signed int __x__i_1, signed int __anonymous_object13){
+    __attribute__ ((unused)) struct _conc__tuple3_1 ___retval_f__Tiii__1 = {  };
+}
+struct _conc__tuple3_2 {
+    signed int field_0;
+    signed int field_1;
+    signed int *field_2;
+};
+struct _conc__tuple3_2 __f__FTiiPi____1(void);
+struct _conc__tuple3_2 __f__FTiiPi__iiPi__1(signed int __anonymous_object14, signed int __x__i_1, signed int *__y__Pi_1);
+struct _conc__tuple3_2 __f__FTiiPi____1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_2 ___retval_f__TiiPi__1 = {  };
+}
+struct _conc__tuple3_2 __f__FTiiPi__iiPi__1(signed int __anonymous_object15, signed int __x__i_1, signed int *__y__Pi_1){
+    __attribute__ ((unused)) struct _conc__tuple3_2 ___retval_f__TiiPi__1 = {  };
+}
+signed int __f11__Fi_i__1(signed int __anonymous_object16);
+signed int __f12__Fi___1(void);
+const double __bar1__FCd___1();
+const double __bar2__FCd_i__1(signed int __anonymous_object17);
+const double __bar3__FCd_d__1(double __anonymous_object18);
+const double __foo__FCd___1(void);
+const double __foo__FCd_i__1(signed int __anonymous_object19);
+const double __foo__FCd_d__1(double __anonymous_object20){
+    __attribute__ ((unused)) const double ___retval_foo__Cd_1;
+    ((void)((*((double *)(&___retval_foo__Cd_1)))=3.0) /* ?{} */);
+    return ___retval_foo__Cd_1;
+}
+struct S {
+    signed int __i__i_1;
+};
+static inline void ___constructor__F_R2sS_autogen___1(struct S *___dst__R2sS_1);
+static inline void ___constructor__F_R2sS2sS_autogen___1(struct S *___dst__R2sS_1, struct S ___src__2sS_1);
+static inline void ___destructor__F_R2sS_autogen___1(struct S *___dst__R2sS_1);
+static inline struct S ___operator_assign__F2sS_R2sS2sS_autogen___1(struct S *___dst__R2sS_1, struct S ___src__2sS_1);
+static inline void ___constructor__F_R2sSi_autogen___1(struct S *___dst__R2sS_1, signed int __i__i_1);
+static inline void ___constructor__F_R2sS_autogen___1(struct S *___dst__R2sS_1){
+    ((void)((*___dst__R2sS_1).__i__i_1) /* ?{} */);
+}
+static inline void ___constructor__F_R2sS2sS_autogen___1(struct S *___dst__R2sS_1, struct S ___src__2sS_1){
+    ((void)((*___dst__R2sS_1).__i__i_1=___src__2sS_1.__i__i_1) /* ?{} */);
+}
+static inline void ___destructor__F_R2sS_autogen___1(struct S *___dst__R2sS_1){
+    ((void)((*___dst__R2sS_1).__i__i_1) /* ^?{} */);
+}
+static inline struct S ___operator_assign__F2sS_R2sS2sS_autogen___1(struct S *___dst__R2sS_1, struct S ___src__2sS_1){
+    struct S ___ret__2sS_1;
+    ((void)((*___dst__R2sS_1).__i__i_1=___src__2sS_1.__i__i_1));
+    ((void)___constructor__F_R2sS2sS_autogen___1((&___ret__2sS_1), (*___dst__R2sS_1)));
+    return ___ret__2sS_1;
+}
+static inline void ___constructor__F_R2sSi_autogen___1(struct S *___dst__R2sS_1, signed int __i__i_1){
+    ((void)((*___dst__R2sS_1).__i__i_1=__i__i_1) /* ?{} */);
+}
+struct S __rtn__F2sS_i__1(signed int __anonymous_object21){
+    __attribute__ ((unused)) struct S ___retval_rtn__2sS_1;
+}
+signed int __f__Fi_PFi_ii_PFi_i___1(signed int (*__anonymous_object22)(signed int __anonymous_object23, signed int __p__i_1), signed int (*__anonymous_object24)(signed int __anonymous_object25)){
+    __attribute__ ((unused)) signed int ___retval_f__i_1;
+    signed int (*(*__pc__PA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*__p__PA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*__p__PA0PFi_i__2)[])(signed int __anonymous_object26);
+}
+static const signed int *__f1__FPCi___1(){
+    __attribute__ ((unused)) const signed int *___retval_f1__PCi_1;
+}
+static const signed int __f2__FCi___1(void){
+    __attribute__ ((unused)) const signed int ___retval_f2__Ci_1;
+}
+static inline signed int *const __f3__FCPi___1(void){
+    __attribute__ ((unused)) signed int *const ___retval_f3__CPi_1;
+}
+struct _conc__tuple2_3 {
+    signed int *field_0;
+    signed int field_1;
+};
+static inline const struct _conc__tuple2_3 __f4__FCTPii____1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 ___retval_f4__CTPii__1;
+}
+static const struct _conc__tuple2_3 __f5__FCTPiCi____1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 ___retval_f5__CTPiCi__1;
+}
+signed int __f__Fi_PFi__PFPi__PFPPi__PFPCPi__PFCPCPi__PiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPi__1(signed int (*__anonymous_object27)(), signed int *(*__anonymous_object28)(), signed int **(*__anonymous_object29)(), signed int *const *(*__anonymous_object30)(), signed int *const *const (*__anonymous_object31)(), signed int *__anonymous_object32, signed int __anonymous_object33[((unsigned long int )10)], signed int **__anonymous_object34, signed int *__anonymous_object35[((unsigned long int )10)], signed int ***__anonymous_object36, signed int **__anonymous_object37[((unsigned long int )10)], signed int *const **__anonymous_object38, signed int *const *__anonymous_object39[((unsigned long int )10)], signed int *const *const *__anonymous_object40, signed int *const *const __anonymous_object41[((unsigned long int )10)]);
+signed int __f__Fi_PFi__PFPi__PFPPi__PFPCPi__PFCPCPi__PiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPi__1(signed int (*__anonymous_object42)(), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[((unsigned long int )10)], signed int **__anonymous_object49, signed int *__anonymous_object50[((unsigned long int )10)], signed int ***__anonymous_object51, signed int **__anonymous_object52[((unsigned long int )10)], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[((unsigned long int )10)], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[((unsigned long int )10)]){
+    __attribute__ ((unused)) signed int ___retval_f__i_1;
+}
+signed int __f__Fi_Pii__1(signed int *__f__Pi_1, signed int __t__i_1){
+    __attribute__ ((unused)) signed int ___retval_f__i_1;
+    signed int __T__i_2;
+}
