diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-07-24 15:17:35 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-07-24 15:17:35 +0000 |
commit | 1a8cb1557afa68b6924036babfa7b68f2d9bdfec (patch) | |
tree | 49d0c94109fd5b2babebf70c832b8a08a6eb1b6b /gcc/explow.c | |
parent | 4b92caa1d6e5623e3562a76976d0bba7a413b2ce (diff) | |
download | gcc-1a8cb1557afa68b6924036babfa7b68f2d9bdfec.zip gcc-1a8cb1557afa68b6924036babfa7b68f2d9bdfec.tar.gz gcc-1a8cb1557afa68b6924036babfa7b68f2d9bdfec.tar.bz2 |
re PR middle-end/61268 (ICE in vt_expand_var_loc_chain, at var-tracking.c:8262)
gcc/
PR middle-end/61268
* function.c (assign_parm_setup_reg): Prevent invalid sharing of
DECL_INCOMING_RTL and entry_parm.
(get_arg_pointer_save_area): Likewise arg_pointer_save_area.
* calls.c (load_register_parameters): Likewise argument values.
(emit_library_call_value_1, store_one_arg): Likewise argument
save areas.
* config/i386/i386.c (assign_386_stack_local): Likewise the local
stack slot.
* explow.c (validize_mem): Modify the argument in-place.
From-SVN: r213002
Diffstat (limited to 'gcc/explow.c')
-rw-r--r-- | gcc/explow.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/explow.c b/gcc/explow.c index e39db05..92c4e57 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -518,8 +518,9 @@ memory_address_addr_space (enum machine_mode mode, rtx x, addr_space_t as) return x; } -/* Convert a mem ref into one with a valid memory address. - Pass through anything else unchanged. */ +/* If REF is a MEM with an invalid address, change it into a valid address. + Pass through anything else unchanged. REF must be an unshared rtx and + the function may modify it in-place. */ rtx validize_mem (rtx ref) @@ -531,8 +532,7 @@ validize_mem (rtx ref) MEM_ADDR_SPACE (ref))) return ref; - /* Don't alter REF itself, since that is probably a stack slot. */ - return replace_equiv_address (ref, XEXP (ref, 0)); + return replace_equiv_address (ref, XEXP (ref, 0), true); } /* If X is a memory reference to a member of an object block, try rewriting |