diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-05-17 22:30:34 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-05-18 09:46:29 +0100 |
commit | 122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf (patch) | |
tree | f847775f48a0f8d6b73962681f766e1330c4ce6c /gdb/dwarf2read.c | |
parent | 3e2cf42fe5c305ebb5a4a69427a37e950385ea60 (diff) | |
download | gdb-122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf.zip gdb-122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf.tar.gz gdb-122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf.tar.bz2 |
gdb: Add constructor to struct cu_partial_die_info
Adds a constructor to 'struct cu_partial_die_info' and disables the
default constructor, preventing partially initialised instances from
being created.
Update 'find_partial_die' to return a const struct.
Users of 'find_partial_die' are updated to take account of the above
two changes.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* dwarf2read.c (struct cu_partial_die_info): Add constructor,
delete default constructor.
(find_partial_die): Update to return const struct.
(partial_die_parent_scope): Move variable declaration into scope
of its use and change its type to auto.
(guess_partial_die_structure_name): Likewise.
(partial_die_info::fixup): Likewise.
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r-- | gdb/dwarf2read.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 004238a..f48b931 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -1514,10 +1514,18 @@ struct cu_partial_die_info struct dwarf2_cu *cu; /* A partial_die_info. */ struct partial_die_info *pdi; + + cu_partial_die_info (struct dwarf2_cu *cu, struct partial_die_info *pdi) + : cu (cu), + pdi (pdi) + { /* Nothhing. */ } + +private: + cu_partial_die_info () = delete; }; -static struct cu_partial_die_info find_partial_die (sect_offset, int, - struct dwarf2_cu *); +static const struct cu_partial_die_info find_partial_die (sect_offset, int, + struct dwarf2_cu *); static const gdb_byte *read_attribute (const struct die_reader_specs *, struct attribute *, struct attr_abbrev *, @@ -8763,7 +8771,6 @@ partial_die_parent_scope (struct partial_die_info *pdi, { const char *grandparent_scope; struct partial_die_info *parent, *real_pdi; - struct cu_partial_die_info res; /* We need to look at our parent DIE; if we have a DW_AT_specification, then this means the parent of the specification DIE. */ @@ -8771,8 +8778,8 @@ partial_die_parent_scope (struct partial_die_info *pdi, real_pdi = pdi; while (real_pdi->has_specification) { - res = find_partial_die (real_pdi->spec_offset, - real_pdi->spec_is_dwz, cu); + auto res = find_partial_die (real_pdi->spec_offset, + real_pdi->spec_is_dwz, cu); real_pdi = res.pdi; cu = res.cu; } @@ -18919,7 +18926,7 @@ dwarf2_cu::find_partial_die (sect_offset sect_off) outside their CU (they do however referencing other types via DW_FORM_ref_sig8). */ -static struct cu_partial_die_info +static const struct cu_partial_die_info find_partial_die (sect_offset sect_off, int offset_in_dwz, struct dwarf2_cu *cu) { struct dwarf2_per_objfile *dwarf2_per_objfile @@ -19000,7 +19007,6 @@ guess_partial_die_structure_name (struct partial_die_info *struct_pdi, struct partial_die_info *real_pdi; struct partial_die_info *child_pdi; - struct cu_partial_die_info res; /* If this DIE (this DIE's specification, if any) has a parent, then we should not do this. We'll prepend the parent's fully qualified @@ -19009,8 +19015,8 @@ guess_partial_die_structure_name (struct partial_die_info *struct_pdi, real_pdi = struct_pdi; while (real_pdi->has_specification) { - res = find_partial_die (real_pdi->spec_offset, - real_pdi->spec_is_dwz, cu); + auto res = find_partial_die (real_pdi->spec_offset, + real_pdi->spec_is_dwz, cu); real_pdi = res.pdi; cu = res.cu; } @@ -19058,9 +19064,8 @@ partial_die_info::fixup (struct dwarf2_cu *cu) if (name == NULL && has_specification) { struct partial_die_info *spec_die; - struct cu_partial_die_info res; - res = find_partial_die (spec_offset, spec_is_dwz, cu); + auto res = find_partial_die (spec_offset, spec_is_dwz, cu); spec_die = res.pdi; cu = res.cu; |