[binutils-gdb] [gdb/testsuite] Use DW_FORM_ref_addr in gdb.dwarf2/enqueued-cu-base-addr.exp

Tom de Vries vries@sourceware.org
Mon Feb 8 14:18:15 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4001d90ddecdfc0e89daa4eca17006e20ad626c0

commit 4001d90ddecdfc0e89daa4eca17006e20ad626c0
Author: Tom de Vries <tdevries@suse.de>
Date:   Mon Feb 8 15:18:12 2021 +0100

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

Diff:
---
 gdb/testsuite/ChangeLog                            | 4 ++++
 gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3e622adb4d0..8aa739749f0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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.
diff --git a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
index 2b93bc87feb..3cf6b079908 100644
--- a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
@@ -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}
 	    }
 	}


More information about the Gdb-cvs mailing list