The wrong type was tested to determine the size of the structure.
Unified · Split
| @@ -749,7 +749,7 @@ void gfunc_call(int nb_args) · 748 unmodified lines | |||
| 749 | gv(RC_INT); | 749 | gv(RC_INT); |
| 750 | #ifdef TCC_ARM_EABI | 750 | #ifdef TCC_ARM_EABI |
| 751 | if((vtop[-nb_args].type.ref->type.t & VT_BTYPE) == VT_STRUCT | 751 | if((vtop[-nb_args].type.ref->type.t & VT_BTYPE) == VT_STRUCT |
| 752 | && type_size(&vtop[-nb_args].type, &align) <= 4) { | 752 | && type_size(&vtop[-nb_args].type.ref->type, &align) <= 4) { |
| 753 | SValue tmp; | 753 | SValue tmp; |
| 754 | tmp=vtop[-nb_args]; | 754 | tmp=vtop[-nb_args]; |
| 755 | vtop[-nb_args]=vtop[-nb_args+1]; | 755 | vtop[-nb_args]=vtop[-nb_args+1]; |