summaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2023-04-11 17:24:09 +0100
committerNick Clifton <nickc@redhat.com>2023-04-11 17:24:09 +0100
commit7bb9e56c6a69c99866d8827cda8fd7ace2298b47 (patch)
treeb11fee3815c84d0da7b03ab7bbf2cc1ac4a06fe6 /binutils
parent91496180eba5150fb169c5edaff16877eefae7f9 (diff)
downloadbinutils-gdb-7bb9e56c6a69c99866d8827cda8fd7ace2298b47.tar.gz
Replace an assertion in the dwarf code with a warning message.
PR 30327 * dwarf.c (read_and_display_attr_value): Warn if the number of views is greater than the number of locations.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/dwarf.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 59ab08a26e6..3b6f045e78a 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,9 @@
2023-04-11 Nick Clifton <nickc@redhat.com>
+ PR 30327
+ * dwarf.c (read_and_display_attr_value): Warn if the number of
+ views is greater than the number of locations.
+
PR 30313
* dwarf.c (display_debug_lines_decoded): Check for an overlarge
number of files or directories.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index f6ff238d3cb..87ce1541d1c 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -2927,8 +2927,14 @@ read_and_display_attr_value (unsigned long attribute,
}
else
{
- assert (debug_info_p->num_loc_views <= num);
- num = debug_info_p->num_loc_views;
+ if (debug_info_p->num_loc_views > num)
+ {
+ warn (_("The number of views (%u) is greater than the number of locations (%u)\n"),
+ debug_info_p->num_loc_views, num);
+ debug_info_p->num_loc_views = num;
+ }
+ else
+ num = debug_info_p->num_loc_views;
if (num > debug_info_p->num_loc_offsets)
warn (_("More DW_AT_GNU_locview attributes than location offset attributes\n"));
else