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

--- Comment #12 from H.J. Lu <hjl.tools at gmail dot com> 2011-05-04 17:24:24 
UTC ---
(In reply to comment #11)
> Created attachment 24183 [details]
> gcc47-pr48853.patch
> 
> Is this better?

No, it doesn't handle DW_OP_GNU_const_type:

(gdb) f 0
#0  mem_loc_descriptor (rtl=0x7ffff0de42f0, mode=DImode, mem_mode=DImode, 
    initialized=VAR_INIT_STATUS_INITIALIZED)
    at /export/gnu/import/git/gcc-x32/gcc/dwarf2out.c:14350
14350          mem_loc_result = new_loc_descr (DW_OP_GNU_const_type, 0,
(gdb) bt
#0  mem_loc_descriptor (rtl=0x7ffff0de42f0, mode=DImode, mem_mode=DImode, 
    initialized=VAR_INIT_STATUS_INITIALIZED)
    at /export/gnu/import/git/gcc-x32/gcc/dwarf2out.c:14350
#1  0x0000000000b3b39d in mem_loc_descriptor (rtl=0x7ffff0d47f90, mode=DImode, 
    mem_mode=DImode, initialized=VAR_INIT_STATUS_INITIALIZED)
    at /export/gnu/import/git/gcc-x32/gcc/dwarf2out.c:14212
#2  0x0000000000b1bed6 in dwarf2out_frame_debug_cfa_expression (
    set=0x7ffff0d47fc0, label=0x4a8ee40 "<do not output>")
    at /export/gnu/import/git/gcc-x32/gcc/dwarf2out.c:2088
#3  0x0000000000b1d605 in dwarf2out_frame_debug (insn=0x7ffff0d45a20, 
    after_p=1 '\001') at /export/gnu/import/git/gcc-x32/gcc/dwarf2out.c:2870
#4  0x0000000000c9a66c in final_scan_insn (insn=0x7ffff0d45a20, 
    file=0x4c05540, optimize_p=2, nopeepholes=0, seen=0x7fffffffddac)
    at /export/gnu/import/git/gcc-x32/gcc/final.c:2775
#5  0x0000000000c98ae7 in final (first=0x7ffff0ce95c0, file=0x4c05540, 
    optimize_p=2) at /export/gnu/import/git/gcc-x32/gcc/final.c:1795
#6  0x0000000000c9cfb4 in rest_of_handle_final ()
    at /export/gnu/import/git/gcc-x32/gcc/final.c:4246
#7  0x000000000133ac82 in execute_one_pass (pass=0x4a80a00)
    at /export/gnu/import/git/gcc-x32/gcc/passes.c:1556
#8  0x000000000133ae71 in execute_pass_list (pass=0x4a80a00)
    at /export/gnu/import/git/gcc-x32/gcc/passes.c:1611
#9  0x000000000133ae92 in execute_pass_list (pass=0x4a813e0)
---Type <return> to continue, or q <return> to quit---q
 at /export/gnu/impoQuit
(gdb) f 1
#1  0x0000000000b3b39d in mem_loc_descriptor (rtl=0x7ffff0d47f90, mode=DImode, 
    mem_mode=DImode, initialized=VAR_INIT_STATUS_INITIALIZED)
    at /export/gnu/import/git/gcc-x32/gcc/dwarf2out.c:14212
14212              dw_loc_descr_ref mem_loc_result2
(gdb) call debug_rtx (rtl)
(plus:DI (reg/f:DI 6 bp)
    (const_int -24 [0xffffffffffffffe8]))
(gdb) 

We need to check all those new DW_OP_GNU_xxxx ops.

Reply via email to