When running test-case gdb.dwarf2/fission-mix.exp using gcc-11, I run into:
...
(gdb) file fission-mix^M
Reading symbols from fission-mix...^M
src/gdb/dwarf2/attribute.h:258: internal-error: \
void attribute::set_unsigned_reprocess(ULONGEST): \
Assertion `form_requires_reprocessing ()' failed.^M
...
This happens when calling set_unsigned_reprocess on an attribute with form
DW_FORM_strx. The assert triggers because DW_FORM_strx is not listed in
form_requires_reprocessing.
Fix this by adding DW_FORM_strx in form_requires_reprocessing.
Tested on x86_64-linux.
gdb/ChangeLog:
2021-02-11 Tom de Vries <tdevries@suse.de>
PR symtab/27353
* dwarf2/attribute.c (attribute::form_requires_reprocessing):
Return true for DW_FORM_strx.
+2021-02-11 Tom de Vries <tdevries@suse.de>
+
+ PR symtab/27353
+ * dwarf2/attribute.c (attribute::form_requires_reprocessing):
+ Return true for DW_FORM_strx.
+
2021-02-11 Tom Tromey <tromey@adacore.com>
PR gdb/27383:
bool
attribute::form_requires_reprocessing () const
{
- return (form == DW_FORM_strx1
+ return (form == DW_FORM_strx
+ || form == DW_FORM_strx1
|| form == DW_FORM_strx2
|| form == DW_FORM_strx3
|| form == DW_FORM_strx4