http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55792



--- Comment #17 from H.J. Lu <hjl.tools at gmail dot com> 2013-01-09 00:22:18 
UTC ---

gimple_location is duplicated by:



#1  0x0000000000751f32 in gimple_copy (stmt=0x7fffe8d75a00)

    at /export/gnu/import/git/gcc/gcc/gimple.c:2205

#2  0x00000000009c960d in gimple_duplicate_bb (bb=0x7fffe8d768f0)

    at /export/gnu/import/git/gcc/gcc/tree-cfg.c:5397

#3  0x00000000005b27a5 in duplicate_block (bb=0x7fffe8d768f0, 

    e=0x7fffe8d793f0, after=0x7fffe8d76888)

    at /export/gnu/import/git/gcc/gcc/cfghooks.c:1012

#4  0x000000000099c511 in tail_duplicate ()

    at /export/gnu/import/git/gcc/gcc/tracer.c:323

#5  0x000000000099c765 in tracer ()

    at /export/gnu/import/git/gcc/gcc/tracer.c:380

#6  0x00000000008ae0e6 in execute_one_pass (pass=0x16d18a0 <pass_tracer>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2335

#7  0x00000000008ae2da in execute_pass_list (pass=0x16d18a0 <pass_tracer>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2383

#8  0x00000000008ae30b in execute_pass_list (

    pass=0x16d07e0 <pass_all_optimizations>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2384

#9  0x00000000005da366 in expand_function (node=0x7ffff17536f0)

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1641

#10 0x00000000005da821 in expand_all_functions ()

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1745

(gdb) p copy

$176 = (gimple) 0x7fffe8e0a320

(gdb) 



Later, the original location is removed:



#0  remove_unused_locals ()

    at /export/gnu/import/git/gcc/gcc/tree-ssa-live.c:793

#1  0x00000000008ad5cb in execute_function_todo (data=0x8800)

    at /export/gnu/import/git/gcc/gcc/passes.c:1952

#2  0x00000000008ac965 in do_per_function (

    callback=0x8ad4ae <execute_function_todo(void*)>, data=0x8800)

    at /export/gnu/import/git/gcc/gcc/passes.c:1703

#3  0x00000000008ad765 in execute_todo (flags=34816)

    at /export/gnu/import/git/gcc/gcc/passes.c:2001

#4  0x00000000008ae175 in execute_one_pass (

    pass=0x16d3220 <pass_cleanup_cfg_post_optimizing>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2349

#5  0x00000000008ae2da in execute_pass_list (

    pass=0x16d3220 <pass_cleanup_cfg_post_optimizing>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2383

#6  0x00000000005da366 in expand_function (node=0x7ffff17536f0)

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1641

#7  0x00000000005da821 in expand_all_functions ()

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1745



and freed.  Then we copy the freed gimple_location:



#0  expand_gimple_stmt_1 (stmt=0x7fffe8e0a320)

    at /export/gnu/import/git/gcc/gcc/cfgexpand.c:2202

#1  0x00000000005a7786 in expand_gimple_stmt (stmt=0x7fffe8e0a320)

    at /export/gnu/import/git/gcc/gcc/cfgexpand.c:2305

#2  0x00000000005ad975 in expand_gimple_basic_block (bb=0x7fffe8d76888, 

    disable_tail_calls=false)

    at /export/gnu/import/git/gcc/gcc/cfgexpand.c:4084

#3  0x00000000005af426 in gimple_expand_cfg ()

    at /export/gnu/import/git/gcc/gcc/cfgexpand.c:4603

#4  0x00000000008ae0e6 in execute_one_pass (pass=0x16ce300 <pass_expand>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2335

#5  0x00000000008ae2da in execute_pass_list (pass=0x16ce300 <pass_expand>)

    at /export/gnu/import/git/gcc/gcc/passes.c:2383

#6  0x00000000005da366 in expand_function (node=0x7ffff17536f0)

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1641

#7  0x00000000005da821 in expand_all_functions ()

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1745

#8  0x00000000005db2ab in compile ()

    at /export/gnu/import/git/gcc/gcc/cgraphunit.c:2043

#9  0x000000000053c60a in lto_main ()

    at /export/gnu/import/git/gcc/gcc/lto/lto.c:3390

#10 0x0000000000999401 in compile_file ()

    at /export/gnu/import/git/gcc/gcc/toplev.c:545

Reply via email to