[gdb/symtab] Handle DW_FORM_strx in form_requires_reprocessing
authorTom de Vries <tdevries@suse.de>
Thu, 11 Feb 2021 20:03:03 +0000 (21:03 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 11 Feb 2021 20:03:03 +0000 (21:03 +0100)
commit05f68f52ef0dc3cc52ee5886509a83f159224eb8
tree5f72c7c63860320c9324de5d931b02a7a3d31b49
parentb260f8d60c24fb541b9b4635ed31e30e6acd6b7a
[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.
gdb/ChangeLog
gdb/dwarf2/attribute.c