[Bug debug/50317] New: [4.7 Regression] missing DW_OP_GNU_implicit_pointer

jan.kratochvil at redhat dot com gcc-bugzilla@gcc.gnu.org
Wed Sep 7 10:57:00 GMT 2011


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

             Bug #: 50317
           Summary: [4.7 Regression] missing DW_OP_GNU_implicit_pointer
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jan.kratochvil@redhat.com
            Target: i686-unknown-linux-gnu


PASS: gcc (GCC) 4.6.2 20110907 (prerelease)
 <2><5e>: Abbrev Number: 5 (DW_TAG_variable)
    <5f>   DW_AT_name        : p        
    <67>   DW_AT_location    : 16 byte block: f2 44 0 0 0 0 93 4 f2 51 0 0 0 0
93 4     (DW_OP_GNU_implicit_pointer: <0x44> 0; DW_OP_piece: 4;
DW_OP_GNU_implicit_pointer: <0x51> 0; DW_OP_piece: 4)
(gdb) print *p[1]
$1 = 23

FAIL: gcc (GCC) 4.7.0 20110907 (experimental)
 <2><5b>: Abbrev Number: 5 (DW_TAG_variable)
    <5c>   DW_AT_name        : p        
    <64>   DW_AT_location    : 10 byte block: f2 45 0 0 0 0 93 4 93 4  
(DW_OP_GNU_implicit_pointer: <0x45> 0; DW_OP_piece: 4; DW_OP_piece: 4)
(gdb) print *p[1]
Cannot access memory at address 0x0

GNU gdb (GDB) 7.3.50.20110907-cvs
(gdb) break foo
(gdb) run
(gdb) print *p[1]

static __attribute__((noinline, noclone)) int foo (int i)
{
  int j = i;
  int *p[2] = { &i, &j };
  return *p[0] + *p[1];
}
int main (void)
{
  return foo (23);
}

That p[1] content definition is missing.

There are many incompletele debug info cases around, filing it because it is a
regression (visible on GDB testcase gdb.dwarf2/implptr.exp).



More information about the Gcc-bugs mailing list