diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2eb6f3515d8..8b98649f226 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-11-12 Kai Tietz + + * sdbout.c (sdbout_symbol): Eliminate register only + if decl isn't a global variable. + 2014-11-12 Alan Lawrence * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices. diff --git a/gcc/sdbout.c b/gcc/sdbout.c index 7b6f4573e05..4cea780c6eb 100644 --- a/gcc/sdbout.c +++ b/gcc/sdbout.c @@ -739,13 +739,16 @@ sdbout_symbol (tree decl, int local) if (!DECL_RTL_SET_P (decl)) return; - SET_DECL_RTL (decl, - eliminate_regs (DECL_RTL (decl), VOIDmode, NULL_RTX)); + value = DECL_RTL (decl); + + if (!is_global_var (decl)) + value = eliminate_regs (value, VOIDmode, NULL_RTX); + + SET_DECL_RTL (decl, value); #ifdef LEAF_REG_REMAP if (crtl->uses_only_leaf_regs) - leaf_renumber_regs_insn (DECL_RTL (decl)); + leaf_renumber_regs_insn (value); #endif - value = DECL_RTL (decl); /* Don't mention a variable at all if it was completely optimized into nothingness.