[gdb/symtab] Fix assertion in write_debug_names
authorTom de Vries <tdevries@suse.de>
Thu, 10 Aug 2023 13:46:30 +0000 (15:46 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 10 Aug 2023 13:46:30 +0000 (15:46 +0200)
commit62a21046a98d081b5ac07afd0099dfd06465922c
tree491c166ec24728c8ccd4153e84b6542d25fc41e3
parentfe1a221c88887e2b4bcb7e8430430b341082d7aa
[gdb/symtab] Fix assertion in write_debug_names

When running test-case gdb.dwarf2/pr13961.exp with target-board
cc-with-debug-names, I run into:
...
Running gdb.dwarf2/pr13961.exp ...
gdb compile failed, gdb/dwarf2/index-write.c:1305: internal-error: \
  write_debug_names: Assertion `counter == per_bfd->all_units.size ()' failed.
...

This is a regression since commit 542a33e348a ("Only use the per-BFD object to
 write a DWARF index"), which did:
...
-  gdb_assert (counter == per_objfile->per_bfd->all_comp_units.size ());
+  gdb_assert (counter == per_bfd->all_units.size ());
...

Fix this by reverting to using all_comp_units:
...
  gdb_assert (counter == per_bfd->all_comp_units.size ());
...

Tested on x86_64-linux, using target boards unix and cc-with-debug-names.

PR symtab/30741
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30741
gdb/dwarf2/index-write.c