http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48163
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu.org --- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- vt_add_function_parameter needs to be adjusted after the assign_parms change: if (!vt_get_decl_and_offset (incoming, &decl, &offset)) { if (REG_P (incoming) || MEM_P (incoming)) { /* This means argument is passed by invisible reference. */ offset = 0; decl = parm; incoming = gen_rtx_MEM (GET_MODE (decl_rtl), incoming); } else { if (!vt_get_decl_and_offset (decl_rtl, &decl, &offset)) return; offset += byte_lowpart_offset (GET_MODE (incoming), GET_MODE (decl_rtl)); } } This generates MEM of MEM incoming locations.