From: Nick Clifton Date: Tue, 11 Apr 2023 16:24:09 +0000 (+0100) Subject: Replace an assertion in the dwarf code with a warning message. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7bb9e56c6a69c99866d8827cda8fd7ace2298b47;p=binutils-gdb.git 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. --- 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