[gdb/symtab] Handle DW_FORM_strx in form_requires_reprocessing
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.
This commit is contained in:
parent
b260f8d60c
commit
05f68f52ef
@ -1,3 +1,9 @@
|
||||
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:
|
||||
|
@ -192,7 +192,8 @@ attribute::form_is_unsigned () const
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user