Ticket #278: poly_dtor_fixed.c

File poly_dtor_fixed.c, 26.1 KB (added by caparson, 2 years ago)

Output C from the repro that has been modified with a potential fix for both issues

Line 
1#include <stdio.h>
2struct __Destructor {
3 void *_X6objectPY12__T_generic__1;
4 void (*_X4dtorFv_PY12__T_generic___1)(void *__param_0);
5};
6static inline void _X11_destructorQ1_0_0_0__Fv_S12__Destructor_BD0___1(struct __Destructor *_X1xS12__Destructor_Y1T__1){
7 if ( (((((void *)(*_X1xS12__Destructor_Y1T__1)._X6objectPY12__T_generic__1)!=((void *)0)) && (((void (*)(void *__param_0))(*_X1xS12__Destructor_Y1T__1)._X4dtorFv_PY12__T_generic___1)!=((void (*)(void *__param_0))0)))!=((signed int )0)) ) {
8 {
9 ((void)((void (*)(void *__param_0))(*_X1xS12__Destructor_Y1T__1)._X4dtorFv_PY12__T_generic___1)(((void *)(*_X1xS12__Destructor_Y1T__1)._X6objectPY12__T_generic__1)));
10 }
11
12 }
13
14}
15static inline void __destroy_Destructor(struct __Destructor *dtor){
16 {
17 ((void)_X11_destructorQ1_0_0_0__Fv_S12__Destructor_BD0___1(dtor));
18 }
19
20}
21struct __NewDestructor { void * ptr; };
22
23struct myType;
24void _X3fooFv_S6myType__1(struct myType *_X1tS6myType_1);
25void _X11_destructorFv_S6myType__1(struct myType *_X1tS6myType_1);
26struct A {
27};
28static inline void _layoutof_A(unsigned long int *_sizeof_A, unsigned long int *_alignof_A, unsigned long int *_offsetof_A, unsigned long int _sizeof_Y12__T_generic_, unsigned long int _alignof_Y12__T_generic_){
29 ((void)((*_sizeof_A)=0));
30 ((void)((*_alignof_A)=1));
31 ((void)(_offsetof_A[0]=(*_sizeof_A)));
32 ((void)((*_sizeof_A)+=_sizeof_Y12__T_generic_));
33 if ( ((*_alignof_A)<_alignof_Y12__T_generic_) ) ((void)((*_alignof_A)=_alignof_Y12__T_generic_));
34
35 if ( ((*_sizeof_A)&((*_alignof_A)-1)) ) ((void)((*_sizeof_A)+=((*_alignof_A)-((*_sizeof_A)&((*_alignof_A)-1)))));
36
37}
38static inline void _X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2155)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2156)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1);
39static inline void _X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2157)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2158)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _sizeof_S1A_Y12__T_generic__, __attribute__ ((unused)) unsigned long int _alignof_S1A_Y12__T_generic__, unsigned long int *_offsetof_S1A_Y12__T_generic__, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1, void *_X4_srcS1A_Y12__T_generic___1);
40static inline void _X11_destructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2159)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2160)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1);
41static inline void _X16_operator_assignQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__FS1A_BD0__S1A_BD0_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2161)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2162)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _sizeof_S1A_Y12__T_generic__, __attribute__ ((unused)) unsigned long int _alignof_S1A_Y12__T_generic__, unsigned long int *_offsetof_S1A_Y12__T_generic__, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_retS1A_Y12__T_generic___1, void *_X4_dstS1A_Y12__T_generic___1, void *_X4_srcS1A_Y12__T_generic___1);
42static inline void _X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0_BD0_autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2163)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2164)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1, void *__anonymous_object2165);
43static inline void _X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2166)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2167)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1){
44 {
45 unsigned long int _sizeof_S1A_Y12__T_generic__;
46 unsigned long int _alignof_S1A_Y12__T_generic__;
47 unsigned long int _offsetof_S1A_Y12__T_generic__[1];
48 ((void)_layoutof_A((&_sizeof_S1A_Y12__T_generic__), (&_alignof_S1A_Y12__T_generic__), _offsetof_S1A_Y12__T_generic__, _sizeof_Y12__T_generic_, _alignof_Y12__T_generic_));
49 ((void)_X12_constructorFv_Y12__T_generic___1((_X4_dstS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0])));
50 }
51
52}
53static inline void _X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2168)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2169)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _sizeof_S1A_Y12__T_generic__, __attribute__ ((unused)) unsigned long int _alignof_S1A_Y12__T_generic__, unsigned long int *_offsetof_S1A_Y12__T_generic__, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1, void *_X4_srcS1A_Y12__T_generic___1){
54 {
55 ((void)_adapterFv_PY12__T_generic_Y12__T_generic___MP(((void (*)())_X12_constructorFv_Y12__T_generic_Y12__T_generic___1), (_X4_dstS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0]), (_X4_srcS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0])));
56 }
57
58}
59static inline void _X11_destructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2170)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2171)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1){
60 {
61 unsigned long int _sizeof_S1A_Y12__T_generic__;
62 unsigned long int _alignof_S1A_Y12__T_generic__;
63 unsigned long int _offsetof_S1A_Y12__T_generic__[1];
64 ((void)_layoutof_A((&_sizeof_S1A_Y12__T_generic__), (&_alignof_S1A_Y12__T_generic__), _offsetof_S1A_Y12__T_generic__, _sizeof_Y12__T_generic_, _alignof_Y12__T_generic_));
65 ((void)_X11_destructorFv_Y12__T_generic___1((_X4_dstS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0])));
66 }
67
68}
69static inline void _X16_operator_assignQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__FS1A_BD0__S1A_BD0_S1A_BD0__autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2172)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2173)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _sizeof_S1A_Y12__T_generic__, __attribute__ ((unused)) unsigned long int _alignof_S1A_Y12__T_generic__, unsigned long int *_offsetof_S1A_Y12__T_generic__, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_retS1A_Y12__T_generic___1, void *_X4_dstS1A_Y12__T_generic___1, void *_X4_srcS1A_Y12__T_generic___1){
70 {
71 __attribute__ ((aligned(8))) char _buf36[_sizeof_Y12__T_generic_];
72 void *_tmp_cp6 = _buf36;
73 void __cleanup_dtor12(void *_dst){
74 ((void)_X11_destructorFv_Y12__T_generic___1(_dst));
75 }
76 // __attribute__ ((cleanup(__destroy_Destructor))) struct __Destructor _ret_dtor12 = { 0, ((void (*)(void *__param_0))__cleanup_dtor12) };
77 __attribute__ ((cleanup(__cleanup_dtor12))) struct __NewDestructor nd = { ((void *)0) };
78 __attribute__ ((aligned(8))) char _buf37[_sizeof_Y12__T_generic_];
79 void *_tmp_cp_ret6 = _buf37;
80 void __cleanup_dtor13(void *_dst){
81 ((void)_X11_destructorFv_Y12__T_generic___1(_dst));
82 }
83 // __attribute__ ((cleanup(__destroy_Destructor))) struct __Destructor _ret_dtor13 = { 0, ((void (*)(void *__param_0))__cleanup_dtor13) };
84 __attribute__ ((cleanup(__cleanup_dtor13))) struct __NewDestructor nd2 = { ((void *)0) };
85 void **_dtype_static_member_12;
86 void **_dtype_static_member_13;
87 __attribute__ ((aligned(8))) char _buf38[_sizeof_Y12__T_generic_];
88 void *_temp19 = _buf38;
89 // the following line is modified to use nd instead of _ret_dtor12 and nd2 instead of _ret_dtor13
90 ((void)(((void)(((void)(_tmp_cp_ret6=(((void)_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP(((void (*)())_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1), _temp19, (_X4_dstS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0]), (((void)(((void)_adapterFv_PY12__T_generic_Y12__T_generic___MP(((void (*)())_X12_constructorFv_Y12__T_generic_Y12__T_generic___1), _tmp_cp6, (_X4_srcS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0]))) , ((*(((void)(_dtype_static_member_12=((void **)(&nd.ptr)))) , _dtype_static_member_12))=((void *)_tmp_cp6)))) , _tmp_cp6))) , _temp19))) , ((*(((void)(_dtype_static_member_13=((void **)(&nd2.ptr)))) , _dtype_static_member_13))=((void *)_tmp_cp_ret6)))) , _tmp_cp_ret6));
91 }
92
93 {
94 ((void)_X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0_S1A_BD0__autogen___1(_adapterFv_PY12__T_generic_Y12__T_generic___MP, _adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP, _sizeof_Y12__T_generic_, _alignof_Y12__T_generic_, _sizeof_S1A_Y12__T_generic__, _alignof_S1A_Y12__T_generic__, _offsetof_S1A_Y12__T_generic__, ((void *(*)(void *__param_0, void *__param_1))_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1), ((void (*)(void *__param_0))_X12_constructorFv_Y12__T_generic___1), ((void (*)(void *__param_0, void *__param_1))_X12_constructorFv_Y12__T_generic_Y12__T_generic___1), ((void (*)(void *__param_0))_X11_destructorFv_Y12__T_generic___1), ((void (*)(void *__param_0))_X3fooFv_Y12__T_generic___1), ((void *)_X4_retS1A_Y12__T_generic___1), _X4_dstS1A_Y12__T_generic___1));
95 }
96
97 return ;
98}
99static inline void _X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0_BD0_autogen___1(__attribute__ ((unused)) void (*_adapterFv_PY12__T_generic_Y12__T_generic___MP)(void (*__anonymous_object2174)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY12__T_generic__PY12__T_generic_Y12__T_generic__P_MP)(void (*__anonymous_object2175)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y12__T_generic_, __attribute__ ((unused)) unsigned long int _alignof_Y12__T_generic_, __attribute__ ((unused)) void *(*_X16_operator_assignFY12__T_generic__Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y12__T_generic_Y12__T_generic___1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y12__T_generic___1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y12__T_generic___1)(void *__param_0), void *_X4_dstS1A_Y12__T_generic___1, __attribute__ ((unused)) void *__anonymous_object2176){
100 {
101 unsigned long int _sizeof_S1A_Y12__T_generic__;
102 unsigned long int _alignof_S1A_Y12__T_generic__;
103 unsigned long int _offsetof_S1A_Y12__T_generic__[1];
104 ((void)_layoutof_A((&_sizeof_S1A_Y12__T_generic__), (&_alignof_S1A_Y12__T_generic__), _offsetof_S1A_Y12__T_generic__, _sizeof_Y12__T_generic_, _alignof_Y12__T_generic_));
105 ((void)_adapterFv_PY12__T_generic_Y12__T_generic___MP(((void (*)())_X12_constructorFv_Y12__T_generic_Y12__T_generic___1), (_X4_dstS1A_Y12__T_generic___1+_offsetof_S1A_Y12__T_generic__[0]), __anonymous_object2176));
106 }
107
108}
109
110void _X11_destructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0___1(__attribute__ ((unused)) void (*_adapterFv_PY1TY1T__MP)(void (*__anonymous_object2177)(), void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_adapterFY1T_PY1TY1T_P_MP)(void (*__anonymous_object2178)(), void *__retval_0, void *__param_0, void *__param_1), __attribute__ ((unused)) unsigned long int _sizeof_Y1T, __attribute__ ((unused)) unsigned long int _alignof_Y1T, __attribute__ ((unused)) void *(*_X16_operator_assignFY1T_Y1TY1T__1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X12_constructorFv_Y1T__1)(void *__param_0), __attribute__ ((unused)) void (*_X12_constructorFv_Y1TY1T__1)(void *__param_0, void *__param_1), __attribute__ ((unused)) void (*_X11_destructorFv_Y1T__1)(void *__param_0), __attribute__ ((unused)) void (*_X3fooFv_Y1T__1)(void *__param_0), void *_X1tS1A_Y1T__1){
111 void __cleanup_dtor20(void *_dst){
112 unsigned long int _sizeof_S1A_Y1T_;
113 unsigned long int _alignof_S1A_Y1T_;
114 unsigned long int _offsetof_S1A_Y1T_[1];
115 ((void)_layoutof_A((&_sizeof_S1A_Y1T_), (&_alignof_S1A_Y1T_), _offsetof_S1A_Y1T_, _sizeof_Y1T, _alignof_Y1T));
116 ((void)_X11_destructorFv_Y1T__1((_dst+_offsetof_S1A_Y1T_[0])));
117 }
118 // __attribute__ ((cleanup(__destroy_Destructor))) struct __Destructor __memberDtor0 = { ((void *)_X1tS1A_Y1T__1), ((void (*)(void *__param_0))__cleanup_dtor20) };
119 __attribute__ ((cleanup(__cleanup_dtor20))) void * nd = ((void *)_X1tS1A_Y1T__1);
120 {
121 ((void)printf(((const char *__restrict )"A\n")));
122 }
123
124}
125struct myType {
126};
127static inline void _X12_constructorFv_S6myType_autogen___1(struct myType *_X4_dstS6myType_1);
128static inline void _X12_constructorFv_S6myTypeS6myType_autogen___1(struct myType *_X4_dstS6myType_1, struct myType _X4_srcS6myType_1);
129static inline void _X11_destructorFv_S6myType_autogen___1(struct myType *_X4_dstS6myType_1);
130static inline struct myType _X16_operator_assignFS6myType_S6myTypeS6myType_autogen___1(struct myType *_X4_dstS6myType_1, struct myType _X4_srcS6myType_1);
131static inline void _X12_constructorFv_S6myType_autogen___1(struct myType *_X4_dstS6myType_1){
132}
133static inline void _X12_constructorFv_S6myTypeS6myType_autogen___1(struct myType *_X4_dstS6myType_1, struct myType _X4_srcS6myType_1){
134}
135static inline void _X11_destructorFv_S6myType_autogen___1(struct myType *_X4_dstS6myType_1){
136}
137static inline struct myType _X16_operator_assignFS6myType_S6myTypeS6myType_autogen___1(struct myType *_X4_dstS6myType_1, struct myType _X4_srcS6myType_1){
138 struct myType _X4_retS6myType_1;
139 {
140 ((void)_X12_constructorFv_S6myTypeS6myType_autogen___1((&_X4_retS6myType_1), (*_X4_dstS6myType_1)));
141 }
142
143 return _X4_retS6myType_1;
144}
145void _X3fooFv_S6myType__1(struct myType *_X1tS6myType_1){
146}
147void _X11_destructorFv_S6myType__1(struct myType *_X1tS6myType_1){
148 {
149 ((void)printf(((const char *__restrict )"T\n")));
150 }
151
152}
153
154// these two adaptors were hoisted
155void _adapterFS6myType_PS6myTypeS6myType_P_MP(void (*_adaptee)(), void *__retval_0, void *__param_0, void *__param_1){
156 ((void)((*((struct myType *)__retval_0))=((struct myType (*)(struct myType *__param_0, struct myType __param_1))_adaptee)(__param_0, (*((struct myType *)__param_1)))));
157}
158void _adapterFv_PS6myTypeS6myType__MP(void (*_adaptee)(), void *__param_0, void *__param_1){
159 ((void)((void (*)(struct myType *__param_0, struct myType __param_1))_adaptee)(__param_0, (*((struct myType *)__param_1))));
160}
161signed int _X4mainFi___1(){
162 __attribute__ ((unused)) signed int _X12_retval_maini_1;
163 {
164 struct _conc_A0;
165 struct _conc_A0 {
166 struct myType __anonymous_object2179;
167 };
168 void __cleanup_dtor19(struct _conc_A0 *_dst){
169 {
170 // both adaptors were hoisted from here
171 ((void)_X11_destructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0___1(_adapterFv_PS6myTypeS6myType__MP, _adapterFS6myType_PS6myTypeS6myType_P_MP, sizeof(struct myType ), __alignof__(struct myType ), ((void *(*)(void *__param_0, void *__param_1))_X16_operator_assignFS6myType_S6myTypeS6myType_autogen___1), ((void (*)(void *__param_0))_X12_constructorFv_S6myType_autogen___1), ((void (*)(void *__param_0, void *__param_1))_X12_constructorFv_S6myTypeS6myType_autogen___1), ((void (*)(void *__param_0))_X11_destructorFv_S6myType__1), ((void (*)(void *__param_0))_X3fooFv_S6myType__1), ((void *)_dst)));
172 }
173
174 }
175 __attribute__ ((cleanup(__cleanup_dtor19))) struct _conc_A0 _X1aS1A_S6myType__3;
176 {
177 // both adaptors were hoisted from here
178 ((void)_X12_constructorQ1_0_0_5__X16_operator_assignFBD0_BD0BD0__X12_constructorFv_BD0__X12_constructorFv_BD0BD0__X11_destructorFv_BD0__X3fooFv_BD0__Fv_S1A_BD0__autogen___1(_adapterFv_PS6myTypeS6myType__MP, _adapterFS6myType_PS6myTypeS6myType_P_MP, sizeof(struct myType ), __alignof__(struct myType ), ((void *(*)(void *__param_0, void *__param_1))_X16_operator_assignFS6myType_S6myTypeS6myType_autogen___1), ((void (*)(void *__param_0))_X12_constructorFv_S6myType_autogen___1), ((void (*)(void *__param_0, void *__param_1))_X12_constructorFv_S6myTypeS6myType_autogen___1), ((void (*)(void *__param_0))_X11_destructorFv_S6myType__1), ((void (*)(void *__param_0))_X3fooFv_S6myType__1), ((void *)(&_X1aS1A_S6myType__3))));
179 }
180
181 }
182
183 {
184 ((void)(_X12_retval_maini_1=0) /* ?{} */);
185 }
186
187 return _X12_retval_maini_1;
188}
189static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi___1(); }
190static inline signed int invoke_main(signed int argc, char **argv, char **envp);
191signed int _X13cfa_args_argci_1;
192char **_X13cfa_args_argvPPc_1;
193char **_X13cfa_args_envpPPc_1;
194__attribute__ ((weak)) extern signed int _X17cfa_main_returnedi_1;
195signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){
196 __attribute__ ((unused)) signed int _X12_retval_maini_1;
197 {
198 ((void)(_X13cfa_args_argci_1=_X4argci_1));
199 }
200
201 {
202 ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1));
203 }
204
205 {
206 ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1));
207 }
208
209 signed int _tmp_cp_ret6;
210 signed int _X3reti_2 = (((void)(_tmp_cp_ret6=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret6);
211 if ( ((&_X17cfa_main_returnedi_1)!=((signed int *)0)) ) {
212 {
213 ((void)(_X17cfa_main_returnedi_1=((signed int )1)));
214 }
215
216 }
217
218 {
219 ((void)(_X12_retval_maini_1=_X3reti_2) /* ?{} */);
220 }
221
222 return _X12_retval_maini_1;
223}