[gdb/symtab] Fix skipping of import of C++ CU
authorTom de Vries <tdevries@suse.de>
Tue, 6 Jul 2021 08:58:43 +0000 (10:58 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 6 Jul 2021 08:58:43 +0000 (10:58 +0200)
commit752e419362eae28f7fcf6347b333347e472bc10f
tree5a21be53a93c82e0015d7df3254725645737d936
parentfbc95f1e11facf233e89a9c2b4dde06b9aaf4b86
[gdb/symtab] Fix skipping of import of C++ CU

Tom Tromey observed that when changing the language in
gdb.dwarf2/imported-unit-bp.exp from c to c++, the test failed.

This is due to this code in process_imported_unit_die:
...
      /* We're importing a C++ compilation unit with tag DW_TAG_compile_unit
         into another compilation unit, at root level.  Regard this as a hint,
         and ignore it.  */
      if (die->parent && die->parent->parent == NULL
          && per_cu->unit_type == DW_UT_compile
          && per_cu->lang == language_cplus)
        return;
...
which should have a partial symtabs counterpart.

Add the missing counterpart in process_psymtab_comp_unit.

Tested on x86_64-linux (openSUSE Leap 15.2), no regressions for config:
- using default gcc version 7.5.0
  (with 5 unexpected FAILs)
- gcc 10.3.0 and target board
  unix/-flto/-O0/-flto-partition=none/-ffat-lto-objects
  (with 1000 unexpected FAILs)

gdb/ChangeLog:

2021-07-06  Tom de Vries  <tdevries@suse.de>

* dwarf2/read.c (scan_partial_symbols): Skip top-level imports of
c++ CU.
* testsuite/gdb.dwarf2/imported-unit-bp.exp: Moved to ...
* testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl: ... here.
* testsuite/gdb.dwarf2/imported-unit-bp-c++.exp: New test.
* testsuite/gdb.dwarf2/imported-unit-bp-c.exp: New test.
* testsuite/gdb.dwarf2/imported-unit.exp: Update.
gdb/ChangeLog
gdb/dwarf2/read.c
gdb/testsuite/gdb.dwarf2/imported-unit-bp-c++.exp [new file with mode: 0644]
gdb/testsuite/gdb.dwarf2/imported-unit-bp-c.exp [new file with mode: 0644]
gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp [deleted file]
gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl [new file with mode: 0644]
gdb/testsuite/gdb.dwarf2/imported-unit.exp