On 12/05/2014 02:00 PM, Jakub Jelinek wrote:
On Fri, Dec 05, 2014 at 01:36:07PM +0100, Martin Liška wrote:
I've just spent some time hunting memory leaks related to my isolated branch.
Valgrind reports many following errors:

==13612== Conditional jump or move depends on uninitialised value(s)
==13612==    at 0xAC72A4: sparseset_bit_p (sparseset.h:147)
==13612==    by 0xAC72A4: sparseset_and_compl(sparseset_def*, sparseset_def*, 
sparseset_def*) (sparseset.c:190)
==13612==    by 0x9B296C: process_bb_lives(basic_block_def*, int&, bool) 
(lra-lives.c:885)
==13612==    by 0x9B394A: lra_create_live_ranges_1(bool, bool) 
(lra-lives.c:1264)
==13612==    by 0x9B426F: lra_create_live_ranges(bool, bool) (lra-lives.c:1329)
==13612==    by 0x99B4A3: lra(_IO_FILE*) (lra.c:2350)
==13612==    by 0x959B79: do_reload (ira.c:5391)
==13612==    by 0x959B79: (anonymous 
namespace)::pass_reload::execute(function*) (ira.c:5561)
==13612==    by 0xA22127: execute_one_pass(opt_pass*) (passes.c:2311)
==13612==    by 0xA225F5: execute_pass_list_1(opt_pass*) (passes.c:2363)
==13612==    by 0xA22607: execute_pass_list_1(opt_pass*) (passes.c:2364)
==13612==    by 0xA22648: execute_pass_list(function*, opt_pass*) 
(passes.c:2374)
==13612==    by 0x726F04: cgraph_node::expand() (cgraphunit.c:1773)
==13612==    by 0x727BCF: output_in_order(bool) (cgraphunit.c:2011)

Following patch just replaces XNEWVAR with XCNEWVAR and it solves all these 
errors.
Ready for trunk?

No.  sparseset is intentionally uninitialized. If you build with valgrind
checking, sparseset is properly instrumented so that valgrind doesn't
complain, otherwise just ignore those.

        Jakub


Thank you Jakub for reply, bergner explained me already situation.
Valgrind checking is new for me ;)

Martin

Reply via email to