mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-31 01:00:02 +08:00
re PR target/23196 (ICE instantiate_virtual_regs_in_insn when -fforce-addr used)
PR 23196 * explow.c (memory_address): Remove special-case for virtual_stack_vars_rtx and virtual_incoming_args_rtx. From-SVN: r102668
This commit is contained in:
parent
9a41773a6a
commit
6d90db3a8b
@ -1,3 +1,9 @@
|
||||
2005-08-02 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR 23196
|
||||
* explow.c (memory_address): Remove special-case for
|
||||
virtual_stack_vars_rtx and virtual_incoming_args_rtx.
|
||||
|
||||
2005-08-02 Diego Novillo <dnovillo@redhat.com>
|
||||
|
||||
PR 23164
|
||||
|
12
gcc/explow.c
12
gcc/explow.c
@ -477,16 +477,10 @@ memory_address (enum machine_mode mode, rtx x)
|
||||
win2:
|
||||
x = oldx;
|
||||
win:
|
||||
if (flag_force_addr && ! cse_not_expected && !REG_P (x)
|
||||
/* Don't copy an addr via a reg if it is one of our stack slots. */
|
||||
&& ! (GET_CODE (x) == PLUS
|
||||
&& (XEXP (x, 0) == virtual_stack_vars_rtx
|
||||
|| XEXP (x, 0) == virtual_incoming_args_rtx)))
|
||||
if (flag_force_addr && ! cse_not_expected && !REG_P (x))
|
||||
{
|
||||
if (general_operand (x, Pmode))
|
||||
x = force_reg (Pmode, x);
|
||||
else
|
||||
x = force_operand (x, NULL_RTX);
|
||||
x = force_operand (x, NULL_RTX);
|
||||
x = force_reg (Pmode, x);
|
||||
}
|
||||
}
|
||||
|
||||
|
10
gcc/testsuite/gcc.c-torture/compile/20050802-1.c
Normal file
10
gcc/testsuite/gcc.c-torture/compile/20050802-1.c
Normal file
@ -0,0 +1,10 @@
|
||||
/* PR 23196 */
|
||||
/* { dg-options "-fforce-addr" } */
|
||||
|
||||
void foo()
|
||||
{
|
||||
char c;
|
||||
|
||||
c |= 1;
|
||||
bar(&c);
|
||||
}
|
Loading…
Reference in New Issue
Block a user