Fix DW_FORM_ref4 values in dw2-op-out-param.S

Message ID yjt2zje8folu.fsf@ruffy.mtv.corp.google.com
State New, archived
Headers

Commit Message

Doug Evans Sept. 9, 2014, 9:52 p.m. UTC
  Hi noticed this test was failing and diagnosed it as being
due to bad DW_FORM_ref4 values.
The current values work if one assumes the CU is the first one in
..debug_info.  I've got glibc debug info installed which breaks
that assumption.

2014-09-09  Doug Evans  <dje@google.com>

	* gdb.dwarf2/dw2-op-out-param.S: Make DW_FORM_ref4 values be the offset
	from the start of the CU.
  

Comments

Doug Evans Oct. 13, 2014, 9:08 p.m. UTC | #1
Doug Evans writes:
 > Hi. I noticed this test was failing and diagnosed it as being
 > due to bad DW_FORM_ref4 values.
 > The current values work if one assumes the CU is the first one in
 > ..debug_info.  I've got glibc debug info installed which breaks
 > that assumption.
 > 
 > 2014-09-09  Doug Evans  <dje@google.com>
 > 
 > 	* gdb.dwarf2/dw2-op-out-param.S: Make DW_FORM_ref4 values be the offset
 > 	from the start of the CU.

Committed.
  

Patch

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S b/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
index aa58a1e..7528c77 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
@@ -369,12 +369,12 @@  int_param_two_reg_pieces:
         .uleb128 0x7                    /* DW_TAG_structure_type */
         .string "big"                   /* DW_AT_name */
         .byte   0x10                    /* DW_AT_byte_size */
-        .long   .LDI6                   /* DW_AT_sibling */
+        .long   .LDI6 - .Ldebug_info0   /* DW_AT_sibling */
 
 .LDI4:
         .uleb128 0x8                    /* DW_TAG_member */
         .string "a"                     /* DW_AT_name */
-        .long   .LDI2                   /* DW_AT_type */
+        .long   .LDI2 - .Ldebug_info0   /* DW_AT_type */
         .byte   0x2                     /* DW_AT_data_member_location : length */
         .byte   0x23                    /* DW_OP_plus_uconst */
         .uleb128 0x0                    /*   + 0 */
@@ -382,7 +382,7 @@  int_param_two_reg_pieces:
 .LDI5:
         .uleb128 0x8                    /* DW_TAG_structure_type */
         .string "b"                     /* DW_AT_name */
-        .long   .LDI2                   /* DW_AT_type */
+        .long   .LDI2 - .Ldebug_info0   /* DW_AT_type */
         .byte   0x2                     /* DW_AT_data_member_location : length */
         .byte   0x23                    /* DW_OP_plus_uconst */
         .uleb128 0x8                    /*   + 8 */
@@ -392,7 +392,7 @@  int_param_two_reg_pieces:
 	.uleb128 0x6                    /* DW_TAG_subprogram */
 	.byte	0x1                     /* DW_AT_external */
 	.string	"main"                  /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.quad	.Ltext1                 /* DW_AT_low_pc */
 	.quad	.Ltext3                 /* DW_AT_high_pc */
 
@@ -403,26 +403,26 @@  int_param_two_reg_pieces:
 	.byte	0x1                     /* DW_AT_prototyped */
 	.quad	.Ltext5                 /* DW_AT_low_pc */
 	.quad	.Ltext7                 /* DW_AT_high_pc */
-	.long	.LDI11                  /* DW_AT_sibling */
+	.long	.LDI11 - .Ldebug_info0  /* DW_AT_sibling */
 
 .LDI8:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand0"              /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.byte	1                       /* DW_AT_location : length */
 	.byte	0x52                    /* DW_OP_reg2 */
 
 .LDI9:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand1"              /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.byte	1                       /* DW_AT_location : length */
 	.byte	0x53                    /* DW_OP_reg3 */
 
 .LDI10:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand2"              /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.byte	1                       /* DW_AT_location : length */
 	.byte	0x54                    /* DW_OP_reg4 */
 
@@ -435,26 +435,26 @@  int_param_two_reg_pieces:
 	.byte	0x1                     /* DW_AT_prototyped */
 	.quad	.Ltext8                 /* DW_AT_low_pc */
 	.quad	.Ltext10                /* DW_AT_high_pc */
-	.long	.LDI15                   /* DW_AT_sibling */
+	.long	.LDI15 - .Ldebug_info0  /* DW_AT_sibling */
 
 .LDI12:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand0"              /* DW_AT_name */
-	.long	.LDI3                   /* DW_AT_type */
+	.long	.LDI3 - .Ldebug_info0   /* DW_AT_type */
 	.byte	1                       /* DW_AT_location : length */
 	.byte	0x53                    /* DW_OP_reg3 */
 
 .LDI13:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand1"              /* DW_AT_name */
-	.long	.LDI3                   /* DW_AT_type */
+	.long	.LDI3 - .Ldebug_info0   /* DW_AT_type */
 	.byte	1                       /* DW_AT_location : length */
 	.byte	0x52                    /* DW_OP_reg2 */
 
 .LDI14:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand2"              /* DW_AT_name */
-	.long	.LDI3                   /* DW_AT_type */
+	.long	.LDI3 - .Ldebug_info0   /* DW_AT_type */
 	.byte	1                       /* DW_AT_location : length */
 	.byte	0x54                    /* DW_OP_reg4 */
 
@@ -467,12 +467,12 @@  int_param_two_reg_pieces:
 	.byte	0x1                     /* DW_AT_prototyped */
 	.quad	.Ltext11                /* DW_AT_low_pc */
 	.quad	.Ltext13                /* DW_AT_high_pc */
-	.long	.LDI19                  /* DW_AT_sibling */
+	.long	.LDI19 - .Ldebug_info0  /* DW_AT_sibling */
 
 .LDI16:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand0"              /* DW_AT_name */
-	.long	.LDI3                   /* DW_AT_type */
+	.long	.LDI3 - .Ldebug_info0   /* DW_AT_type */
 	.byte	6                       /* DW_AT_location : length */
 	.byte	0x51                    /* DW_OP_reg1 */
         .byte   0x93                    /* DW_OP_piece */
@@ -484,7 +484,7 @@  int_param_two_reg_pieces:
 .LDI17:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand1"              /* DW_AT_name */
-	.long	.LDI3                   /* DW_AT_type */
+	.long	.LDI3 - .Ldebug_info0   /* DW_AT_type */
 	.byte	6                       /* DW_AT_location : length */
 	.byte	0x52                    /* DW_OP_reg2 */
         .byte   0x93                    /* DW_OP_piece */
@@ -496,7 +496,7 @@  int_param_two_reg_pieces:
 .LDI18:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand2"              /* DW_AT_name */
-	.long	.LDI3                   /* DW_AT_type */
+	.long	.LDI3 - .Ldebug_info0   /* DW_AT_type */
 	.byte	6                       /* DW_AT_location : length */
 	.byte	0x54                    /* DW_OP_reg4 */
         .byte   0x93                    /* DW_OP_piece */
@@ -514,12 +514,12 @@  int_param_two_reg_pieces:
 	.byte	0x1                     /* DW_AT_prototyped */
 	.quad	.Ltext14                /* DW_AT_low_pc */
 	.quad	.Ltext16                /* DW_AT_high_pc */
-	.long	.LDIE0                  /* DW_AT_sibling */
+	.long	.LDIE0 - .Ldebug_info0  /* DW_AT_sibling */
 
 .LDI20:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand0"              /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.byte	6                       /* DW_AT_location : length */
 	.byte	0x51                    /* DW_OP_reg1 */
         .byte   0x93                    /* DW_OP_piece */
@@ -531,7 +531,7 @@  int_param_two_reg_pieces:
 .LDI21:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand1"              /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.byte	6                       /* DW_AT_location : length */
 	.byte	0x52                    /* DW_OP_reg2 */
         .byte   0x93                    /* DW_OP_piece */
@@ -543,7 +543,7 @@  int_param_two_reg_pieces:
 .LDI22:
 	.uleb128 0x4                    /* DW_TAG_formal_parameter */
 	.string	"operand2"              /* DW_AT_name */
-	.long	.LDI2                   /* DW_AT_type */
+	.long	.LDI2 - .Ldebug_info0   /* DW_AT_type */
 	.byte	6                       /* DW_AT_location : length */
 	.byte	0x54                    /* DW_OP_reg4 */
         .byte   0x93                    /* DW_OP_piece */