diff options
author | Tom Tromey <tom@tromey.com> | 2022-07-15 19:05:29 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2022-12-26 11:01:10 -0700 |
commit | 4d78ce772370fa48b9a749f81205076f26eba846 (patch) | |
tree | a26f1109b9cf24c35a21beaa4a02baee61bb04e1 /gdb/dwarf2 | |
parent | 639601f90d1fda494e1d9c17b7f71d31e3b0a5e3 (diff) | |
download | gdb-4d78ce772370fa48b9a749f81205076f26eba846.zip gdb-4d78ce772370fa48b9a749f81205076f26eba846.tar.gz gdb-4d78ce772370fa48b9a749f81205076f26eba846.tar.bz2 |
Add initializers to comp_unit_head
PR symtab/29343 points out that it would be beneficial if
comp_unit_head had a constructor and used initializers. This patch
implements this. I'm unsure if this is sufficient to close the bug,
but at least it's a step.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29343
Diffstat (limited to 'gdb/dwarf2')
-rw-r--r-- | gdb/dwarf2/comp-unit-head.h | 24 | ||||
-rw-r--r-- | gdb/dwarf2/cu.h | 2 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 2 | ||||
-rw-r--r-- | gdb/dwarf2/read.h | 2 |
4 files changed, 14 insertions, 16 deletions
diff --git a/gdb/dwarf2/comp-unit-head.h b/gdb/dwarf2/comp-unit-head.h index a7ee3e6..7579fe7 100644 --- a/gdb/dwarf2/comp-unit-head.h +++ b/gdb/dwarf2/comp-unit-head.h @@ -34,36 +34,36 @@ translation, looks like this. */ struct comp_unit_head { - unsigned int length; - unsigned char version; - unsigned char addr_size; - unsigned char signed_addr_p; - sect_offset abbrev_sect_off; + unsigned int length = 0; + unsigned char version = 0; + unsigned char addr_size = 0; + unsigned char signed_addr_p = 0; + sect_offset abbrev_sect_off {}; /* Size of file offsets; either 4 or 8. */ - unsigned int offset_size; + unsigned int offset_size = 0; /* Size of the length field; either 4 or 12. */ - unsigned int initial_length_size; + unsigned int initial_length_size = 0; - enum dwarf_unit_type unit_type; + enum dwarf_unit_type unit_type {}; /* Offset to first die in this cu from the start of the cu. This will be the first byte following the compilation unit header. */ - cu_offset first_die_cu_offset; + cu_offset first_die_cu_offset {}; /* Offset to the first byte of this compilation unit header in the .debug_info section, for resolving relative reference dies. */ - sect_offset sect_off; + sect_offset sect_off {}; /* For types, offset in the type's DIE of the type defined by this TU. */ - cu_offset type_cu_offset_in_tu; + cu_offset type_cu_offset_in_tu {}; /* 64-bit signature of this unit. For type units, it denotes the signature of the type (DW_UT_type in DWARF 4, additionally DW_UT_split_type in DWARF 5). Also used in DWARF 5, to denote the dwo id when the unit type is DW_UT_skeleton or DW_UT_split_compile. */ - ULONGEST signature; + ULONGEST signature = 0; /* Return the total length of the CU described by this header. */ unsigned int get_length () const diff --git a/gdb/dwarf2/cu.h b/gdb/dwarf2/cu.h index 5297509..b126aca 100644 --- a/gdb/dwarf2/cu.h +++ b/gdb/dwarf2/cu.h @@ -98,7 +98,7 @@ struct dwarf2_cu void add_dependence (struct dwarf2_per_cu_data *ref_per_cu); /* The header of the compilation unit. */ - struct comp_unit_head header {}; + struct comp_unit_head header; /* Base address of this compilation unit. */ gdb::optional<CORE_ADDR> base_address; diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 7bd12c1..28fadb8 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -23580,8 +23580,6 @@ dwarf2_per_cu_data::get_header () const const gdb_byte *info_ptr = this->section->buffer + to_underlying (this->sect_off); - memset (&m_header, 0, sizeof (m_header)); - read_comp_unit_head (&m_header, info_ptr, this->section, rcuh_kind::COMPILE); diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index dd71826..0dc4e2e 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -206,7 +206,7 @@ public: Don't access this field directly, use the get_header method instead. It should be private, but we can't make it private at the moment. */ - mutable comp_unit_head m_header {}; + mutable comp_unit_head m_header; /* The file and directory for this CU. This is cached so that we don't need to re-examine the DWO in some situations. This may be |