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.

Reply via email to