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.