[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.8.0 --- Comment #9 from H.J. Lu hjl.tools at gmail dot com 2012-12-07 22:11:26 UTC --- Fixed.
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 --- Comment #8 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2012-08-24 13:22:02 UTC --- Author: hjl Date: Fri Aug 24 13:21:55 2012 New Revision: 190647 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=190647 Log: Allow arg_pointer_rtx/frame_pointer_rtx for based_loc_descr gcc/ PR debug/52857 * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and frame_pointer_rtx for based_loc_descr. gcc/testsuite/ PR debug/52857 * gcc.target/i386/pr52857-1.c: New. * gcc.target/i386/pr52857-2.c: Likewise. Added: trunk/gcc/testsuite/gcc.target/i386/pr52857-1.c trunk/gcc/testsuite/gcc.target/i386/pr52857-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/dwarf2out.c trunk/gcc/testsuite/ChangeLog
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added URL|http://gcc.gnu.org/ml/gcc-p |http://gcc.gnu.org/ml/gcc-p |atches/2012-04/msg00358.htm |atches/2012-04/msg01815.htm |l |l --- Comment #7 from H.J. Lu hjl.tools at gmail dot com 2012-06-24 14:23:51 UTC --- The updated patch is at http://gcc.gnu.org/ml/gcc-patches/2012-04/msg01815.html
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 --- Comment #6 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2012-04-25 19:08:29 UTC --- Author: hjl Date: Wed Apr 25 19:08:23 2012 New Revision: 186837 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=186837 Log: Assert dbx_reg_number doesn't return INVALID_REGNUM PR debug/52857 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM. Modified: trunk/gcc/ChangeLog trunk/gcc/dwarf2out.c
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 --- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2012-04-06 13:05:49 UTC --- For (note 21 8 17 2 (expr_list:REG_DEP_TRUE (concat:SI (reg:SI 5 di) (subreg:SI (plus:DI (reg/f:DI 16 argp) (const_int -20 [0xffec])) 0)) (nil)) NOTE_INSN_CALL_ARG_LOCATION) when (plus:DI (reg/f:DI 16 argp) (const_int -20 [0xffec])) reaches case PLUS: plus: if (is_based_loc (rtl) GET_MODE_SIZE (mode) = DWARF2_ADDR_SIZE GET_MODE_CLASS (mode) == MODE_INT) mem_loc_result = based_loc_descr (XEXP (rtl, 0), INTVAL (XEXP (rtl, 1)), VAR_INIT_STATUS_INITIALIZED); else it fails GET_MODE_SIZE (mode) = DWARF2_ADDR_SIZE since we have ptr_mode = SImode and Pmode == DImode. However, arg_pointer_rtx and frame_pointer_rtx are special cases. They should be allowed even if their mode sizes DWARF2_ADDR_SIZE.
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 --- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2012-04-06 14:51:55 UTC --- Another testcase: [hjl@gnu-mic-2 delta]$ cat testcase.c void uw_init_context_1 (void *); void _Unwind_ForcedUnwind (void) { uw_init_context_1 (__builtin_dwarf_cfa ()); } [hjl@gnu-mic-2 delta]$ /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -mx32 -O2 -g -fPIC -S -maddress-mode=long testcase.c testcase.c: In function \u2018_Unwind_ForcedUnwind\u2019: testcase.c:5:1: internal compiler error: in mem_loc_descriptor, at dwarf2out.c:11675 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. [hjl@gnu-mic-2 delta]$
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc-p ||atches/2012-04/msg00358.htm ||l --- Comment #5 from H.J. Lu hjl.tools at gmail dot com 2012-04-06 17:41:01 UTC --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00358.html
[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52857 --- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2012-04-06 00:50:50 UTC --- A small testcase: [hjl@gnu-6 delta]$ cat testcase.c extern void get_BID128 (int *); void __bid128_div (long long bid_y) { int res; get_BID128 (res); } [hjl@gnu-6 delta]$ gcc -mx32 -maddress-mode=long -g -O testcase.c -c readelf -w testcase.o | grep DW_OP_GNU_regval_type: 4294967295 79 DW_AT_GNU_call_site_value: 21 byte block: f5 ff ff ff ff f 25 f4 25 8 ec ff ff ff ff ff ff ff 22 f7 2c (DW_OP_GNU_regval_type: 4294967295 (r-1) 0x25; DW_OP_GNU_const_type: 0x25 8 byte block: ec ff ff ff ff ff ff ff ; DW_OP_plus; DW_OP_GNU_convert 0x2c) [hjl@gnu-6 delta]$