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:
Richard Henderson 2005-08-02 13:39:24 -07:00 committed by Richard Henderson
parent 9a41773a6a
commit 6d90db3a8b
3 changed files with 19 additions and 9 deletions

View File

@ -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

View File

@ -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);
}
}

View File

@ -0,0 +1,10 @@
/* PR 23196 */
/* { dg-options "-fforce-addr" } */
void foo()
{
char c;
c |= 1;
bar(&c);
}