Fix DW_FORM_ref4 values in dw2-op-out-param.S
Commit Message
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 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.
@@ -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 */