diff options
author | Tom Tromey <tom@tromey.com> | 2020-03-26 09:28:08 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-03-26 09:28:25 -0600 |
commit | a39fdb411d43824b27d886bab42cada62a9fe431 (patch) | |
tree | 5a245a46377ce009e26ec4ed2dd7b8c6aced5d4b /gdb/dwarf2/die.h | |
parent | 436c571c6afc8c5affe36327ab363b98ec9adb2d (diff) | |
download | gdb-a39fdb411d43824b27d886bab42cada62a9fe431.zip gdb-a39fdb411d43824b27d886bab42cada62a9fe431.tar.gz gdb-a39fdb411d43824b27d886bab42cada62a9fe431.tar.bz2 |
Change two more functions to be methods on die_info
This changes lookup_addr_base and lookup_ranges_base to be methods on
die_info.
gdb/ChangeLog
2020-03-26 Tom Tromey <tom@tromey.com>
* dwarf2/die.h (struct die_info) <addr_base, ranges_base>: New
methods.
* dwarf2/read.c (lookup_addr_base): Move to die.h.
(lookup_ranges_base): Likewise.
(read_cutu_die_from_dwo, read_full_die_1): Update.
Diffstat (limited to 'gdb/dwarf2/die.h')
-rw-r--r-- | gdb/dwarf2/die.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gdb/dwarf2/die.h b/gdb/dwarf2/die.h index 3a265b7..c358664 100644 --- a/gdb/dwarf2/die.h +++ b/gdb/dwarf2/die.h @@ -33,6 +33,32 @@ struct die_info return NULL; } + /* Return the address base of the compile unit, which, if exists, is + stored either at the attribute DW_AT_GNU_addr_base, or + DW_AT_addr_base. */ + gdb::optional<ULONGEST> addr_base () + { + struct attribute *attr = this->attr (DW_AT_addr_base); + if (attr == nullptr) + attr = this->attr (DW_AT_GNU_addr_base); + if (attr == nullptr) + return gdb::optional<ULONGEST> (); + return DW_UNSND (attr); + } + + /* Return range lists base of the compile unit, which, if exists, is + stored either at the attribute DW_AT_rnglists_base or + DW_AT_GNU_ranges_base. */ + ULONGEST ranges_base () + { + struct attribute *attr = this->attr (DW_AT_rnglists_base); + if (attr == nullptr) + attr = this->attr (DW_AT_GNU_ranges_base); + if (attr == nullptr) + return 0; + return DW_UNSND (attr); + } + /* DWARF-2 tag for this DIE. */ ENUM_BITFIELD(dwarf_tag) tag : 16; |