[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.
This commit is contained in:
Tom de Vries
2021-02-08 15:18:12 +01:00
parent 9b3e4b5d74
commit 4001d90dde
2 changed files with 5 additions and 1 deletions

View File

@@ -1,3 +1,7 @@
2021-02-08 Tom de Vries <tdevries@suse.de>
* gdb.dwarf2/enqueued-cu-base-addr.exp: Fix inter-CU reference.
2021-02-08 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.python/tui-window-disabled.c: New file.

View File

@@ -50,7 +50,7 @@ Dwarf::assemble $asm_file {
} {
DW_TAG_variable {
{name foo}
{type :$int_label}
{type %$int_label}
{const_value 1 DW_FORM_sdata}
}
}