public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] [gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S
@ 2019-05-09 10:24 Tom de Vries
  0 siblings, 0 replies; only message in thread
From: Tom de Vries @ 2019-05-09 10:24 UTC (permalink / raw)
  To: gdb-cvs

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

commit 63b667adb4a915f13ec3ace77af4b9cbd76bceac
Author: Tom de Vries <tdevries@suse.de>
Date:   Thu May 9 12:24:38 2019 +0200

    [gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S
    
    The test-case gdb.arch/amd64-tailcall-self.exp fails here:
    ...
    if ![runto b] {
        return -1
    }
    ...
    like:
    ...
    (gdb) file build/gdb/testsuite/outputs/gdb.arch/amd64-tailcall-self/\
      amd64-tailcall-self
    Reading symbols from build/gdb/testsuite/outputs/gdb.arch/\
      amd64-tailcall-self/amd64-tailcall-self...
    Dwarf Error: Cannot find DIE at 0x1f5 referenced from DIE at 0x107 [in \
      module build/gdb/testsuite/outputs/gdb.arch/amd64-tailcall-self/\
      amd64-tailcall-self]
    ...
    
    The problem is that in amd64-tailcall-self.S, CU-relative references are
    assigned .debug_info section relative values.  [ This is similar to the
    problem fixed by "Fix gdb.arch/amd64-entry-value-paramref.S". ]
    
    Fix this by assigning CU-relative references instead.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-05-09  Tom de Vries  <tdevries@suse.de>
    
    	* gdb.arch/amd64-tailcall-self.S: Make DW_FORM_ref4 references
    	CU-relative.

Diff:
---
 gdb/testsuite/ChangeLog                      |  5 +++++
 gdb/testsuite/gdb.arch/amd64-tailcall-self.S | 24 ++++++++++++------------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 47e82c4..867dc87 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
 2019-05-09  Tom de Vries  <tdevries@suse.de>
 
+	* gdb.arch/amd64-tailcall-self.S: Make DW_FORM_ref4 references
+	CU-relative.
+
+2019-05-09  Tom de Vries  <tdevries@suse.de>
+
 	* gdb.arch/amd64-entry-value-paramref.S: Make DW_FORM_ref4 references
 	CU-relative.
 
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-self.S b/gdb/testsuite/gdb.arch/amd64-tailcall-self.S
index de59795..0dce7e2 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-self.S
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-self.S
@@ -209,7 +209,7 @@ die29:
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0x7	# DW_AT_decl_line
 			# DW_AT_prototyped
-	.long	die6b	# DW_AT_type
+	.long	die6b - .Ldebug_info0	# DW_AT_type
 	.quad	.LFB1	# DW_AT_low_pc
 	.quad	.LFE1-.LFB1	# DW_AT_high_pc
 	.uleb128 0x1	# DW_AT_frame_base
@@ -219,7 +219,7 @@ die29:
 	.ascii "q\0"	# DW_AT_name
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0x7	# DW_AT_decl_line
-	.long	die6b	# DW_AT_type
+	.long	die6b - .Ldebug_info0	# DW_AT_type
 	.uleb128 0x1	# DW_AT_location
 	.byte	0x55	# DW_OP_reg5
 	.byte	0	# end of children of DIE 0x40
@@ -244,7 +244,7 @@ die72:
 	.ascii "q\0"	# DW_AT_name
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0xb	# DW_AT_decl_line
-	.long	die6b	# DW_AT_type
+	.long	die6b - .Ldebug_info0	# DW_AT_type
 	.uleb128 0x4	# DW_AT_location
 	.byte	0xf3	# DW_OP_GNU_entry_value
 	.uleb128 0x1
@@ -253,11 +253,11 @@ die72:
 	.uleb128 0x7	# (DIE () DW_TAG_GNU_call_site)
 	.quad	.Lfirsttailcall	# DW_AT_low_pc
 			# DW_AT_GNU_tail_call
-	.long	die72	# DW_AT_abstract_origin
+	.long	die72 - .Ldebug_info0	# DW_AT_abstract_origin
 	.uleb128 0x7	# (DIE (0x9b) DW_TAG_GNU_call_site)
 	.quad	.LVL2	# DW_AT_low_pc
 			# DW_AT_GNU_tail_call
-	.long	die29	# DW_AT_abstract_origin
+	.long	die29 - .Ldebug_info0	# DW_AT_abstract_origin
 	.byte	0	# end of children of DIE 0x72
 	.uleb128 0x8	# (DIE (0xa9) DW_TAG_subprogram)
 			# DW_AT_external
@@ -265,7 +265,7 @@ die72:
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0x14	# DW_AT_decl_line
 			# DW_AT_prototyped
-	.long	die6b	# DW_AT_type
+	.long	die6b - .Ldebug_info0	# DW_AT_type
 	.quad	.LFB3	# DW_AT_low_pc
 	.quad	.LFE3-.LFB3	# DW_AT_high_pc
 	.uleb128 0x1	# DW_AT_frame_base
@@ -275,17 +275,17 @@ die72:
 	.long	.LASF1	# DW_AT_name: "argc"
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0x14	# DW_AT_decl_line
-	.long	die6b	# DW_AT_type
+	.long	die6b - .Ldebug_info0	# DW_AT_type
 	.long	.LLST0	# DW_AT_location
 	.uleb128 0x9	# (DIE (0xd9) DW_TAG_formal_parameter)
 	.long	.LASF2	# DW_AT_name: "argv"
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0x14	# DW_AT_decl_line
-	.long	diefe	# DW_AT_type
+	.long	diefe - .Ldebug_info0	# DW_AT_type
 	.long	.LLST1	# DW_AT_location
 	.uleb128 0xa	# (DIE (0xe8) DW_TAG_GNU_call_site)
 	.quad	.LVL4	# DW_AT_low_pc
-	.long	die72	# DW_AT_abstract_origin
+	.long	die72 - .Ldebug_info0	# DW_AT_abstract_origin
 	.uleb128 0xb	# (DIE (0xf5) DW_TAG_GNU_call_site_parameter)
 	.uleb128 0x1	# DW_AT_location
 	.byte	0x55	# DW_OP_reg5
@@ -298,11 +298,11 @@ die72:
 diefe:
 	.uleb128 0xc	# (DIE (0xfe) DW_TAG_pointer_type)
 	.byte	0x8	# DW_AT_byte_size
-	.long	die104	# DW_AT_type
+	.long	die104 - .Ldebug_info0	# DW_AT_type
 die104:
 	.uleb128 0xc	# (DIE (0x104) DW_TAG_pointer_type)
 	.byte	0x8	# DW_AT_byte_size
-	.long	die10a	# DW_AT_type
+	.long	die10a - .Ldebug_info0	# DW_AT_type
 die10a:
 	.uleb128 0xd	# (DIE (0x10a) DW_TAG_base_type)
 	.byte	0x1	# DW_AT_byte_size
@@ -312,7 +312,7 @@ die10a:
 	.ascii "i\0"	# DW_AT_name
 	.byte	0x1	# DW_AT_decl_file (amd64-tailcall-self.c)
 	.byte	0x5	# DW_AT_decl_line
-	.long	die6b	# DW_AT_type
+	.long	die6b - .Ldebug_info0	# DW_AT_type
 			# DW_AT_external
 	.uleb128 0x9	# DW_AT_location
 	.byte	0x3	# DW_OP_addr


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-05-09 10:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-09 10:24 [binutils-gdb] [gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S Tom de Vries

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).