diff options
author | Roland McGrath <roland@redhat.com> | 2010-05-08 04:01:14 -0700 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 2010-08-30 04:10:41 -0700 |
commit | 932585d2385c9d4e5686e4ddc9ba30c68172d7f3 (patch) | |
tree | d9a9bd294301b8d01c7a994b9560cb68121dcd3f /libdw/dwarf_getlocation.c | |
parent | a159915a87d83951acb9e504b9cefc08ba98b8bd (diff) |
Handle DW_OP_GNU_implicit_pointer.
Diffstat (limited to 'libdw/dwarf_getlocation.c')
-rw-r--r-- | libdw/dwarf_getlocation.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index e960ef9e..f7a60f9f 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -420,6 +420,15 @@ __libdw_intern_expression (Dwarf *dbg, bool other_byte_order, data += newloc->number; /* Skip the block. */ break; + case DW_OP_GNU_implicit_pointer: + /* DW_FORM_ref_addr, depends on offset size of CU. */ + if (__libdw_read_offset_inc (dbg, sec_index, &data, ref_size, + &newloc->number, IDX_debug_info, 0)) + return -1; + /* XXX Check size. */ + get_uleb128 (newloc->number2, data); /* Byte offset. */ + break; + default: goto invalid; } |