https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71622
--- Comment #13 from Thiago Macieira <thiago at kde dot org> --- (In reply to Markus Trippelsdorf from comment #10) > valgrind --track-origins=yes --trace-children=yes g++... > will probably also print a backtrace. First error: ==32645== Conditional jump or move depends on uninitialised value(s) ==32645== at 0x7EE1B2: sparseset_bit_p (sparseset.h:147) ==32645== by 0x7EE1B2: mark_pseudo_regno_live(int) (ira-lives.c:301) ==32645== by 0x7EEE40: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1281) ==32645== by 0x7D6276: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1845) ==32645== by 0x7EFB21: ira_create_allocno_live_ranges() (ira-lives.c:1582) ==32645== by 0x7D7BF3: ira_build() (ira-build.c:3461) ==32645== by 0x7D114A: ira (ira.c:5278) ==32645== by 0x7D114A: (anonymous namespace)::pass_ira::execute(function*) (ira.c:5570) ==32645== by 0x879215: execute_one_pass(opt_pass*) (passes.c:2330) ==32645== by 0x879645: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2383) ==32645== by 0x879657: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2384) ==32645== by 0x879698: execute_pass_list(function*, opt_pass*) (passes.c:2394) ==32645== by 0x62DC8A: cgraph_node::expand() (cgraphunit.c:1896) ==32645== by 0x62EF73: expand_all_functions (cgraphunit.c:2032) ==32645== by 0x62EF73: symbol_table::compile() [clone .part.43] (cgraphunit.c:2385) ==32645== Uninitialised value was created by a heap allocation ==32645== at 0x4C2D12F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==32645== by 0xF33B97: xmalloc (xmalloc.c:147) ==32645== by 0x90E544: sparseset_alloc(unsigned long) (sparseset.c:33) ==32645== by 0x7EFAAF: ira_create_allocno_live_ranges() (ira-lives.c:1574) ==32645== by 0x7D7BF3: ira_build() (ira-build.c:3461) ==32645== by 0x7D114A: ira (ira.c:5278) ==32645== by 0x7D114A: (anonymous namespace)::pass_ira::execute(function*) (ira.c:5570) ==32645== by 0x879215: execute_one_pass(opt_pass*) (passes.c:2330) ==32645== by 0x879645: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2383) ==32645== by 0x879657: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2384) ==32645== by 0x879698: execute_pass_list(function*, opt_pass*) (passes.c:2394) ==32645== by 0x62DC8A: cgraph_node::expand() (cgraphunit.c:1896) ==32645== by 0x62EF73: expand_all_functions (cgraphunit.c:2032) ==32645== by 0x62EF73: symbol_table::compile() [clone .part.43] (cgraphunit.c:2385) Followed by a lot of similar errors, then ==32645== Use of uninitialised value of size 8 ==32645== at 0x7EE1B7: sparseset_bit_p (sparseset.h:147) ==32645== by 0x7EE1B7: mark_pseudo_regno_live(int) (ira-lives.c:301) ==32645== by 0x7EEBA6: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1106) ==32645== by 0x7D6295: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1845) ==32645== by 0x7EFB21: ira_create_allocno_live_ranges() (ira-lives.c:1582) ==32645== by 0x7D7BF3: ira_build() (ira-build.c:3461) ==32645== by 0x7D114A: ira (ira.c:5278) ==32645== by 0x7D114A: (anonymous namespace)::pass_ira::execute(function*) (ira.c:5570) ==32645== by 0x879215: execute_one_pass(opt_pass*) (passes.c:2330) ==32645== by 0x879645: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2383) ==32645== by 0x879657: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2384) ==32645== by 0x879698: execute_pass_list(function*, opt_pass*) (passes.c:2394) ==32645== by 0x62DC8A: cgraph_node::expand() (cgraphunit.c:1896) ==32645== by 0x62EF73: expand_all_functions (cgraphunit.c:2032) ==32645== by 0x62EF73: symbol_table::compile() [clone .part.43] (cgraphunit.c:2385) ==32645== Uninitialised value was created by a heap allocation ==32645== at 0x4C2D12F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==32645== by 0xF33B97: xmalloc (xmalloc.c:147) ==32645== by 0x90E544: sparseset_alloc(unsigned long) (sparseset.c:33) ==32645== by 0x7EFAAF: ira_create_allocno_live_ranges() (ira-lives.c:1574) ==32645== by 0x7D7BF3: ira_build() (ira-build.c:3461) ==32645== by 0x7D114A: ira (ira.c:5278) ==32645== by 0x7D114A: (anonymous namespace)::pass_ira::execute(function*) (ira.c:5570) ==32645== by 0x879215: execute_one_pass(opt_pass*) (passes.c:2330) ==32645== by 0x879645: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2383) ==32645== by 0x879657: execute_pass_list_1(opt_pass*) [clone .constprop.64] (passes.c:2384) ==32645== by 0x879698: execute_pass_list(function*, opt_pass*) (passes.c:2394) ==32645== by 0x62DC8A: cgraph_node::expand() (cgraphunit.c:1896) ==32645== by 0x62EF73: expand_all_functions (cgraphunit.c:2032) ==32645== by 0x62EF73: symbol_table::compile() [clone .part.43] (cgraphunit.c:2385) Later: ==32645== More than 100 errors detected. Subsequent errors ==32645== will still be recorded, but in less detail than before. Unlike in PR63319, valgrind showed no "Invalid read" or write.