[PATCH 06/22] Convert dwarf2_section_buffer_overflow_complaint to a method

Tom Tromey
2020-03-22T18:45:27Z

This changes dwarf2_section_buffer_overflow_complaint to be a method
on dwarf2_section_info.

gdb/ChangeLog
2020-03-22 Tom Tromey <tom@tromey.com>

* dwarf2/section.h (struct dwarf2_section_info)
<overload_complaint>: Declare.
(dwarf2_section_buffer_overflow_complaint): Don't declare.
* dwarf2/section.c (dwarf2_section_info::overflow_complaint):
Rename from dwarf2_section_buffer_overflow_complaint.
* dwarf2/read.c (skip_one_die, partial_die_info::read)
(skip_form_bytes, dwarf_decode_macro_bytes): Update.
---
gdb/ChangeLog | 10 ++++++++++
gdb/dwarf2/read.c | 10 +++++-----
gdb/dwarf2/section.c | 5 ++---
gdb/dwarf2/section.h | 7 ++++---
4 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 2b4f693c38a..52a53428d5b 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -8595,7 +8595,7 @@ skip_one_die (const struct die_reader_specs *reader, const gdb_byte *info_ptr,
if (sibling_ptr < info_ptr)
complaint (_("DW_AT_sibling points backwards"));
else if (sibling_ptr > reader->buffer_end)
- dwarf2_section_buffer_overflow_complaint (reader->die_section);
+ reader->die_section->overflow_complaint ();
else
return sibling_ptr;
}
@@ -18079,7 +18079,7 @@ partial_die_info::read (const struct die_reader_specs *reader,
if (sibling_ptr < info_ptr)
complaint (_("DW_AT_sibling points backwards"));
else if (sibling_ptr > reader->buffer_end)
- dwarf2_section_buffer_overflow_complaint (reader->die_section);
+ reader->die_section->overflow_complaint ();
else
sibling = sibling_ptr;
}
@@ -23329,7 +23329,7 @@ skip_form_bytes (bfd *abfd, const gdb_byte *bytes, const gdb_byte *buffer_end,
bytes = gdb_skip_leb128 (bytes, buffer_end);
if (bytes == NULL)
{
- dwarf2_section_buffer_overflow_complaint (section);
+ section->overflow_complaint ();
return NULL;
}
break;
@@ -23492,7 +23492,7 @@ dwarf_decode_macro_bytes (struct dwarf2_per_objfile *dwarf2_per_objfile,
/* Do we at least have room for a macinfo type byte? */
if (mac_ptr >= mac_end)
{
- dwarf2_section_buffer_overflow_complaint (section);
+ section->overflow_complaint ();
break;
}

@@ -23645,7 +23645,7 @@ dwarf_decode_macro_bytes (struct dwarf2_per_objfile *dwarf2_per_objfile,
/* Do we at least have room for a macinfo type byte? */
if (mac_ptr >= mac_end)
{
- dwarf2_section_buffer_overflow_complaint (section);
+ section->overflow_complaint ();
return;
}

diff --git a/gdb/dwarf2/section.c b/gdb/dwarf2/section.c
index 31cb8b9b2e7..9714368a5d2 100644
--- a/gdb/dwarf2/section.c
+++ b/gdb/dwarf2/section.c
@@ -31,12 +31,11 @@
#include "complaints.h"

void
-dwarf2_section_buffer_overflow_complaint (struct dwarf2_section_info *section)
+dwarf2_section_info::overflow_complaint () const
{
complaint (_("debug info runs off end of %s section"
" [in module %s]"),
- section->get_name (),
- section->get_file_name ());
+ get_name (), get_file_name ());
}

struct dwarf2_section_info *
diff --git a/gdb/dwarf2/section.h b/gdb/dwarf2/section.h
index f4ac9af311e..555efecacd6 100644
--- a/gdb/dwarf2/section.h
+++ b/gdb/dwarf2/section.h
@@ -94,6 +94,10 @@ struct dwarf2_section_info
return size;
}

+ /* Issue a complaint that something was outside the bounds of this
+ buffer. */
+ void overflow_complaint () const;
+
union
{
/* If this is a real section, the bfd section. */
@@ -116,7 +120,4 @@ struct dwarf2_section_info
bool is_virtual;
};

-extern void dwarf2_section_buffer_overflow_complaint
- (struct dwarf2_section_info *section);
-
#endif /* GDB_DWARF2_SECTION_H */
--
2.17.2