diff options
author | Natarajan, Kavitha <Kavitha.Natarajan@amd.com> | 2022-05-25 16:10:38 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2022-05-25 16:10:38 +0100 |
commit | 3ac9da49378ccb061e3e33e4342c35949bf368a9 (patch) | |
tree | 173d88e8e612392b746047d59ac8797f170a2b13 /binutils/dwarf.c | |
parent | cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b (diff) | |
download | fsf-binutils-gdb-3ac9da49378ccb061e3e33e4342c35949bf368a9.zip fsf-binutils-gdb-3ac9da49378ccb061e3e33e4342c35949bf368a9.tar.gz fsf-binutils-gdb-3ac9da49378ccb061e3e33e4342c35949bf368a9.tar.bz2 |
Add bionutils support for DWARF v5's DW_OP_addrx.
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r-- | binutils/dwarf.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c index a0dfd4d..caa3ce4 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -1721,6 +1721,10 @@ decode_location_expression (unsigned char * data, printf ("DW_OP_GNU_parameter_ref: <0x%s>", dwarf_vmatoa ("x", cu_offset + uvalue)); break; + case DW_OP_addrx: + READ_ULEB (uvalue, data, end); + printf ("DW_OP_addrx <0x%s>", dwarf_vmatoa ("x", uvalue)); + break; case DW_OP_GNU_addr_index: READ_ULEB (uvalue, data, end); printf ("DW_OP_GNU_addr_index <0x%s>", dwarf_vmatoa ("x", uvalue)); @@ -2661,10 +2665,15 @@ read_and_display_attr_value (unsigned long attribute, uvalue = check_uvalue (block_start, uvalue, end); - if (do_loc) - data = block_start + uvalue; - else - data = display_block (block_start, uvalue, end, delimiter); + data = block_start + uvalue; + if (!do_loc) + { + unsigned char op; + + SAFE_BYTE_GET (op, block_start, sizeof (op), end); + if (op != DW_OP_addrx) + data = display_block (block_start, uvalue, end, delimiter); + } break; case DW_FORM_block1: |