[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)
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

index 3e622adb4d0c335030af94327948a270ed26ad13..8aa739749f043cea6fcfe8cb0f47f325ecb4c4a0 100644 (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.
index 2b93bc87febad1c09b84f313bc1ab690e6722936..3cf6b0799088078a3104125656bc2420e6aa6aa4 100644 (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}
            }
        }