Commit e318c1e1 by Jakub Jelinek Committed by Jakub Jelinek

re PR target/60516 (cc1plus crashes compiling a method with a huge struct as argument)

	PR target/60516
	* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
	note creation for the 2010-08-31 changes.

	* gcc.target/i386/pr60516.c: New test.

From-SVN: r208623
parent f1aa79d8
2014-03-17 Jakub Jelinek <jakub@redhat.com>
PR target/60516
* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
note creation for the 2010-08-31 changes.
2014-03-17 Marek Polacek <polacek@redhat.com>
PR middle-end/60534
......
......@@ -11708,8 +11708,9 @@ ix86_expand_epilogue (int style)
m->fs.cfa_offset -= UNITS_PER_WORD;
m->fs.sp_offset -= UNITS_PER_WORD;
add_reg_note (insn, REG_CFA_ADJUST_CFA,
copy_rtx (XVECEXP (PATTERN (insn), 0, 1)));
rtx x = plus_constant (Pmode, stack_pointer_rtx, UNITS_PER_WORD);
x = gen_rtx_SET (VOIDmode, stack_pointer_rtx, x);
add_reg_note (insn, REG_CFA_ADJUST_CFA, x);
add_reg_note (insn, REG_CFA_REGISTER,
gen_rtx_SET (VOIDmode, ecx, pc_rtx));
RTX_FRAME_RELATED_P (insn) = 1;
2014-03-17 Jakub Jelinek <jakub@redhat.com>
PR target/60516
* gcc.target/i386/pr60516.c: New test.
2014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59571
......
/* PR target/60516 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
struct S { char c[65536]; };
__attribute__((ms_abi, thiscall)) void
foo (void *x, struct S y)
{
}
__attribute__((ms_abi, fastcall)) void
bar (void *x, void *y, struct S z)
{
}
__attribute__((ms_abi, stdcall)) void
baz (struct S x)
{
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment