https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105415
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- What I see is that for the n variable we create a varpool_node during the FE finish_decl, then during symbol_table::remove_unreachable_nodes it is removed, but with -g (and only with that, not with -g0) we create yet another varpool_node for the same variable during sched1 pass because we have: (debug_insn 7 6 8 3 (var_location:SI D#1 (mem/c:SI (symbol_ref:DI ("n") [flags 0x82] <var_decl 0x7fb3041bdf30 n>) [1 n+0 S4 A32])) "pr105415.c":11:9 -1 (nil)) as the only reference to n and in: #0 varpool_node::get_create (decl=<var_decl 0x7fffea3e7f30 n>) at ../../gcc/varpool.cc:153 #1 0x0000000000c7cfb9 in symtab_node::get_create (node=<var_decl 0x7fffea3e7f30 n>) at ../../gcc/cgraph.h:3362 #2 0x0000000000c77730 in compare_base_symbol_refs (x_base=0x7fffea2c8a78, y_base=0x7fffea2c8a28, distance=0x0) at ../../gcc/alias.cc:2223 #3 0x0000000000c77b67 in base_alias_check (x=0x7fffea2cc1e0, x_base=0x7fffea2c8a28, y=0x7fffea2c8a78, y_base=0x7fffea2c8a78, x_mode=E_SImode, y_mode=E_SImode) at ../../gcc/alias.cc:2309 #4 0x0000000000c7b066 in write_dependence_p (mem=0x7fffea2cc000, x=0x7fffea2c5a38, x_mode=E_VOIDmode, x_addr=0x7fffea2cc1e0, mem_canonicalized=false, x_canonicalized=false, writep=false) at ../../gcc/alias.cc:3156 #5 0x0000000000c7b285 in anti_dependence (mem=0x7fffea2cc000, x=0x7fffea2c5a38) at ../../gcc/alias.cc:3183 #6 0x0000000002652e29 in sched_analyze_1 (deps=0x7fffffffd240, x=0x7fffea2c5ca8, insn=0x7fffea3efac0) at ../../gcc/sched-deps.cc:2501 #7 0x000000000265407c in sched_analyze_insn (deps=0x7fffffffd240, x=0x7fffea2c5ca8, insn=0x7fffea3efac0) at ../../gcc/sched-deps.cc:2931 #8 0x0000000002656c52 in deps_analyze_insn (deps=0x7fffffffd240, insn=0x7fffea3efac0) at ../../gcc/sched-deps.cc:3683 #9 0x000000000265723d in sched_analyze (deps=0x7fffffffd240, head=0x7fffea3ef880, tail=0x7fffea3efac0) at ../../gcc/sched-deps.cc:3829 #10 0x0000000001375306 in compute_block_dependences (bb=0) at ../../gcc/sched-rgn.cc:2733 #11 0x0000000001377154 in sched_rgn_compute_dependencies (rgn=1) at ../../gcc/sched-rgn.cc:3360 #12 0x000000000137677c in schedule_region (rgn=1) at ../../gcc/sched-rgn.cc:3113 #13 0x000000000137797f in schedule_insns () at ../../gcc/sched-rgn.cc:3518 #14 0x0000000001378224 in rest_of_handle_sched () at ../../gcc/sched-rgn.cc:3722 create the varpool node again. Which shifts the node->order of later created cgraph or varpool nodes.