Fix for the complaint observed when symbol reading due to unsupported .debug_names...
authornitachra <Nitika.Achra@amd.com>
Sat, 9 May 2020 08:03:51 +0000 (10:03 +0200)
committerTom de Vries <tdevries@suse.de>
Sat, 9 May 2020 08:03:51 +0000 (10:03 +0200)
commit6dc55ce97db90a9e6f201d67ca05608e19287ba1
tree3a0b0ab8ff6228d10a5fd20d1002440c3048947f
parentb326e6b0deed5d5ad22767c2800f490f61b37824
Fix for the complaint observed when symbol reading due to unsupported .debug_names form

Following complaint is observed with the executable compiled with -gdwarf-5
and -gpubnames flags - "During symbol reading: Unsupported .debug_names form
DW_FORM_ref4".  This is the form corresponding to DW_IDX_die_offset attribute.
This patch fixes this complaint.  Tested with clang 10.0.0.  Test case used -

int main()
{
int sum,a,b;
sum = a + b;
return sum;
}

clang -gdwarf-5 -gpubnames test.c -o test.out

gdb -q test.out -ex "set complaints 1" -ex "start"

Reading symbols from test.out...
During symbol reading: Unsupported .debug_names form DW_FORM_ref4 \
  [in module test.out]
Temporary breakpoint 1 at 0x400484
Starting program: test.out
During symbol reading: Unsupported .debug_names form DW_FORM_ref4 \
  [in module test.out]
During symbol reading: Unsupported .debug_names form DW_FORM_ref4 \
  [in module test.out]
During symbol reading: Unsupported .debug_names form DW_FORM_ref4 \
  [in module test.out]

gdb/dwarf2/ChangeLog:

2020-05-09  Nitika Achra  <Nitika.Achra@amd.com>

PR symtab/25952
* read.c (dw2_debug_names_iterator::next): Handle DW_FORM_ref*
and DW_IDX_die_offset.  If there is no compilation unit attribute in
the index entry, then there is a single CU.  Return the CU at O index
of compilation unit vector.

gdb/testsuite/ChangeLog:

2020-05-09  Tom de Vries  <tdevries@suse.de>

* gdb.dwarf2/clang-debug-names.exp: Remove PR25952 kfail.
gdb/dwarf2/read.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/clang-debug-names.exp