[gdb/testsuite] Use DW_FORM_ref_addr in gdb.dwarf2/enqueued-cu-base-addr.exp
authorTom de Vries <tdevries@suse.de>
Mon, 8 Feb 2021 14:18:12 +0000 (15:18 +0100)
committerTom de Vries <tdevries@suse.de>
Mon, 8 Feb 2021 14:18:12 +0000 (15:18 +0100)
commit4001d90ddecdfc0e89daa4eca17006e20ad626c0
tree9af281a61ad0ba729307886d1a97772abf160a1d
parent9b3e4b5d74a8170a8f9f224c36c651661fc26954
[gdb/testsuite] Use DW_FORM_ref_addr in gdb.dwarf2/enqueued-cu-base-addr.exp

When running test-case gdb.dwarf2/enqueued-cu-base-addr.exp with target board
cc-with-dwz, I get:
...
gdb compile failed, dwz: enqueued-cu-base-addr: \
  Couldn't find DIE at [100] referenced by DW_AT_type from DIE at [d8]
...

At 0xd8 we have DIE:
...
 <1><d8>: Abbrev Number: 3 (DW_TAG_variable)
    <d9>   DW_AT_name        : foo
    <dd>   DW_AT_type        : <0x100>
    <e1>   DW_AT_const_value : 1
...
referring to:
...
 <1><100>: Abbrev Number: 3 (DW_TAG_base_type)
    <101>   DW_AT_byte_size   : 4
    <102>   DW_AT_encoding    : 5       (signed)
    <103>   DW_AT_name        : int
...

The reference is inter-CU, but the used abbrev uses DW_FORM_ref4:
...
   3      DW_TAG_variable    [no children]
    DW_AT_name         DW_FORM_string
    DW_AT_type         DW_FORM_ref4
    DW_AT_const_value  DW_FORM_sdata
    DW_AT value: 0     DW_FORM value: 0
...
which is for intra-CU references.

Fix this by using a '%' instead of a ':' label prefix in the dwarf assembly.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2021-02-08  Tom de Vries  <tdevries@suse.de>

* gdb.dwarf2/enqueued-cu-base-addr.exp: Fix inter-CU reference.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp