re PR middle-end/67619 (ICE at -O1 and above on x86_64-linux-gnu in int_mode_for_mode, at stor-layout.c:425)
PR middle-end/67619 * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy the address to a register. testsuite/ChangeLog: PR middle-end/67619 * gcc.dg/torture/pr67619.c: New test. From-SVN: r227909
This commit is contained in:
parent
a502f7b6e4
commit
dcd7a7dfce
4 changed files with 26 additions and 3 deletions
|
@ -1,4 +1,10 @@
|
|||
2015-09-16 Jeff Law <law@redhat.com>
|
||||
2015-09-18 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR middle-end/67619
|
||||
* except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
|
||||
the address to a register.
|
||||
|
||||
2015-09-18 Jeff Law <law@redhat.com>
|
||||
|
||||
PR tree-optimization/47679
|
||||
* Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
|
||||
|
|
|
@ -2219,7 +2219,7 @@ expand_builtin_eh_return (tree stackadj_tree ATTRIBUTE_UNUSED,
|
|||
VOIDmode, EXPAND_NORMAL);
|
||||
tmp = convert_memory_address (Pmode, tmp);
|
||||
if (!crtl->eh.ehr_stackadj)
|
||||
crtl->eh.ehr_stackadj = copy_to_reg (tmp);
|
||||
crtl->eh.ehr_stackadj = copy_addr_to_reg (tmp);
|
||||
else if (tmp != crtl->eh.ehr_stackadj)
|
||||
emit_move_insn (crtl->eh.ehr_stackadj, tmp);
|
||||
#endif
|
||||
|
@ -2228,7 +2228,7 @@ expand_builtin_eh_return (tree stackadj_tree ATTRIBUTE_UNUSED,
|
|||
VOIDmode, EXPAND_NORMAL);
|
||||
tmp = convert_memory_address (Pmode, tmp);
|
||||
if (!crtl->eh.ehr_handler)
|
||||
crtl->eh.ehr_handler = copy_to_reg (tmp);
|
||||
crtl->eh.ehr_handler = copy_addr_to_reg (tmp);
|
||||
else if (tmp != crtl->eh.ehr_handler)
|
||||
emit_move_insn (crtl->eh.ehr_handler, tmp);
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-09-18 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR middle-end/67619
|
||||
* gcc.dg/torture/pr67619.c: New test.
|
||||
|
||||
2015-09-18 Alan Lawrence <alan.lawrence@arm.com>
|
||||
|
||||
PR tree-optimization/67283
|
||||
|
|
12
gcc/testsuite/gcc.dg/torture/pr67619.c
Normal file
12
gcc/testsuite/gcc.dg/torture/pr67619.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
/* { dg-do compile } */
|
||||
|
||||
void
|
||||
foo ()
|
||||
{
|
||||
unsigned long l;
|
||||
void *p = 0;
|
||||
|
||||
__builtin_unwind_init ();
|
||||
l = 0;
|
||||
__builtin_eh_return (l, p);
|
||||
}
|
Loading…
Add table
Reference in a new issue