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 + 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