diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-10-17 16:10:42 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-10-17 16:10:42 +0000 |
commit | b8105705495f00ff9060fea7d70c69009c7a4f96 (patch) | |
tree | 65f73aad4b6e2da29e0fae1adc780367d6b3b3a7 | |
parent | 80b841ba52a689712da44a91954c17a8aeace5c8 (diff) | |
download | gcc-b8105705495f00ff9060fea7d70c69009c7a4f96.zip gcc-b8105705495f00ff9060fea7d70c69009c7a4f96.tar.gz gcc-b8105705495f00ff9060fea7d70c69009c7a4f96.tar.bz2 |
* explow.c (validize_mem): Do not modify the argument in-place.
From-SVN: r241247
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/explow.c | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9acc738..2ad0bb5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-10-17 Eric Botcazou <ebotcazou@adacore.com> + + * explow.c (validize_mem): Do not modify the argument in-place. + 2016-10-17 Thomas Schwinge <thomas@codesourcery.com> * tree-streamer.c (record_common_node): Explicitly list expected @@ -95,7 +99,7 @@ (lookup_descr_for_decl): New function. (convert_tramp_reference_op): Deal with descriptors. (build_init_call_stmt): New function extracted from... - (finalize_nesting_tree_1): ...here. Adjust and deal withdescriptors. + (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors. * defaults.h (FUNCTION_ALIGNMENT): Define. (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY. * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. diff --git a/gcc/explow.c b/gcc/explow.c index fbebcbd..1c59c86 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -496,9 +496,8 @@ memory_address_addr_space (machine_mode mode, rtx x, addr_space_t as) return x; } -/* 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. */ +/* Convert a mem ref into one with a valid memory address. + Pass through anything else unchanged. */ rtx validize_mem (rtx ref) @@ -510,7 +509,8 @@ validize_mem (rtx ref) MEM_ADDR_SPACE (ref))) return ref; - return replace_equiv_address (ref, XEXP (ref, 0), true); + /* Don't alter REF itself, since that is probably a stack slot. */ + return replace_equiv_address (ref, XEXP (ref, 0)); } /* If X is a memory reference to a member of an object block, try rewriting |