[Bug debug/52857] DW_OP_GNU_regval_type is generated with INVALID_REGNUM

2012-12-07 Thread hjl.tools at gmail dot com


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

2012-08-24 Thread hjl at gcc dot gnu.org
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

2012-06-24 Thread hjl.tools at gmail dot com
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

2012-04-25 Thread hjl at gcc dot gnu.org
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

2012-04-06 Thread hjl.tools at gmail dot com
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

2012-04-06 Thread hjl.tools at gmail dot com
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

2012-04-06 Thread hjl.tools at gmail dot com
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

2012-04-05 Thread hjl.tools at gmail dot com
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]$