https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104407

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
DECL_RTL is set in the -g case prematurely during:
#0  set_decl_rtl (t=<var_decl 0x7fffea24dcf0 a>, x=0x7fffea3b9bb8) at
../../gcc/emit-rtl.cc:1440
#1  0x0000000001bdc0a5 in make_decl_rtl (decl=<var_decl 0x7fffea24dcf0 a>) at
../../gcc/varasm.cc:1633
#2  0x000000000120cb23 in expand_expr_real_1 (exp=<var_decl 0x7fffea24dcf0 a>,
target=0x0, tmode=E_DImode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false)
    at ../../gcc/expr.cc:10551
#3  0x0000000001204aaf in expand_expr_real (exp=<var_decl 0x7fffea24dcf0 a>,
target=0x0, tmode=E_DImode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false)
    at ../../gcc/expr.cc:8736
#4  0x00000000011e20e8 in expand_expr (exp=<var_decl 0x7fffea24dcf0 a>,
target=0x0, mode=E_DImode, modifier=EXPAND_INITIALIZER) at ../../gcc/expr.h:301
#5  0x0000000001203a46 in expand_expr_addr_expr_1 (exp=<var_decl 0x7fffea24dcf0
a>, target=0x0, tmode=DImode, modifier=EXPAND_INITIALIZER, as=0 '\000') at
../../gcc/expr.cc:8427
#6  0x0000000001204402 in expand_expr_addr_expr (exp=<addr_expr
0x7fffea3a0e80>, target=0x0, tmode=E_DImode, modifier=EXPAND_INITIALIZER) at
../../gcc/expr.cc:8548
#7  0x0000000001212ed7 in expand_expr_real_1 (exp=<addr_expr 0x7fffea3a0e80>,
target=0x0, tmode=E_VOIDmode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false)
    at ../../gcc/expr.cc:11767
#8  0x0000000001204aaf in expand_expr_real (exp=<addr_expr 0x7fffea3a0e80>,
target=0x0, tmode=E_VOIDmode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false)
    at ../../gcc/expr.cc:8736
#9  0x000000000112950c in expand_expr (exp=<addr_expr 0x7fffea3a0e80>,
target=0x0, mode=E_VOIDmode, modifier=EXPAND_INITIALIZER) at
../../gcc/expr.h:301
#10 0x00000000011595e0 in rtl_for_decl_init (init=<addr_expr 0x7fffea3a0e80>,
type=<reference_type 0x7fffea3a9e70>) at ../../gcc/dwarf2out.cc:20488
#11 0x000000000115ab99 in tree_add_const_value_attribute (die=<dw_die_ref
0x7fffea26a3c0 DW_TAG_variable <parent=0x7fffea26a370 DW_TAG_namespace>>,
t=<nop_expr 0x7fffea3a0ea0>)
    at ../../gcc/dwarf2out.cc:20915

Unfortunately it is deep in the expansion code, so we can't easily make it if
(!early_dwarf) don't SET_DECL_RTL, because we don't really know that this is
from early dwarf.

Reply via email to