diff options
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 791b8ad..21b76b9 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -2915,7 +2915,7 @@ force_const_mem (enum machine_mode mode, rtx x) hash = const_hash_rtx (mode, x); for (desc = const_rtx_hash_table[hash]; desc; desc = desc->next) if (compare_constant_rtx (mode, x, desc)) - return desc->rtl; + return copy_rtx (desc->rtl); /* No constant equal to X is known to have been output. Make a constant descriptor to enter X in the hash table @@ -2983,7 +2983,7 @@ force_const_mem (enum machine_mode mode, rtx x) SYMBOL_REF_FLAGS (symbol) = SYMBOL_FLAG_LOCAL; current_function_uses_const_pool = 1; - return def; + return copy_rtx (def); } /* Given a SYMBOL_REF with CONSTANT_POOL_ADDRESS_P true, return a pointer to |