From 0547eeed14bf30f5777ce334f51b400269c3bbac Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 2 Aug 2012 15:57:49 +0000 Subject: [PATCH] * gdb.dwarf2/dw2-icc-opaque.S: Remove .align directives. Fix wrong output on big-endian systems. * gdb.dwarf2/dw2-icc-opaque.exp: Expect @mode32 attribute on 4-byte pointer types on 64-bit s390x. --- gdb/testsuite/ChangeLog | 7 +++++++ gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S | 14 +++++--------- gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp | 8 +++++++- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6e759667f85..0d86bb1ec12 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2012-08-02 Ulrich Weigand + + * gdb.dwarf2/dw2-icc-opaque.S: Remove .align directives. + Fix wrong output on big-endian systems. + * gdb.dwarf2/dw2-icc-opaque.exp: Expect @mode32 attribute on + 4-byte pointer types on 64-bit s390x. + 2012-08-02 Ulrich Weigand * gdb.base/watchpoint.c (func2): Initialize local_a. Add diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S index 117866d5cb8..47b017b3e43 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S @@ -38,7 +38,6 @@ .global p_struct# .section .debug_info - .align 1 debug_info_seg1: .4byte debug_info_seg1_end - 1f /* Length of compilation unit info. */ 1: @@ -57,7 +56,8 @@ debug_info_seg1: .byte 0x01 /* DW_AT_accessibility. */ .asciz "p_struct" /* DW_AT_name. */ .4byte 3f - debug_info_seg1 /* DW_AT_type. */ - .2byte 0x0305 /* DW_AT_location: 5 bytes, DW_OP_addr */ + .byte 0x05 /* DW_AT_location: 5 bytes ... */ + .byte 0x03 /* DW_OP_addr ... */ .4byte p_struct /* followed by the address of p_struct. */ .byte 0x01 /* DW_AT_external. */ @@ -76,7 +76,6 @@ debug_info_seg1_end: .section .debug_abbrev .debug_abbrev_seg1: - .align 1 .byte 0x01 /* Abbrev 1. */ .byte 0x11 /* DW_TAG_compile_unit. */ .byte 0x01 /* DW_CHILDREN_yes. */ @@ -123,7 +122,6 @@ debug_info_seg1_end: .file "opaque-struct.c" .section .debug_info - .align 1 debug_info_seg2: .4byte debug_info_seg2_end - 1f /* Length of compilation unit info. */ 1: @@ -145,8 +143,9 @@ debug_info_seg2: .byte 0x03 /* DIE 3: DW_TAG_member. */ - .2byte 0x2302 /* DW_AT_data_member_location, 2 bytes, */ - .byte 0x00 /* DW_OP_plus_uconst followed by zero. */ + .byte 0x02 /* DW_AT_data_member_location: 2 bytes ... */ + .byte 0x23 /* DW_OP_plus_uconst ... */ + .byte 0x00 /* followed by zero. */ .asciz "wrapped_value" /* DW_AT_name. */ .4byte 4f - debug_info_seg2 /* DW_AT_type. */ .byte 0x00 @@ -162,7 +161,6 @@ debug_info_seg2_end: .section .debug_abbrev .debug_abbrev_seg2: - .align 1 .byte 0x01 /* Abbrev 1. */ .byte 0x11 /* DW_TAG_compile_unit. */ .byte 0x01 /* DW_CHILDREN_yes. */ @@ -210,7 +208,6 @@ debug_info_seg2_end: .file "opaque-pointer2.c" .section .debug_info - .align 1 debug_info_seg3: .4byte debug_info_seg3_end - 1f /* Length of compilation unit info. */ 1: @@ -235,7 +232,6 @@ debug_info_seg3_end: .section .debug_abbrev .debug_abbrev_seg3: - .align 1 .byte 0x01 /* Abbrev 1. */ .byte 0x11 /* DW_TAG_compile_unit. */ .byte 0x01 /* DW_CHILDREN_yes. */ diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp index db78006b509..fe7d7e8e8c8 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp @@ -36,4 +36,10 @@ clean_restart $executable # type = struct opaque_struct_t { # # } * -gdb_test "ptype p_struct" "type = struct opaque_struct_t {\r\n *int wrapped_value;\r\n} \\*" +if { [istarget s390x-*-*] && [is_lp64_target] } { + # The hand-coded DWARF info hard-codes a pointer size of 4 bytes, + # which is represented as @mode32 on s390x. + gdb_test "ptype p_struct" "type = struct opaque_struct_t {\r\n *int wrapped_value;\r\n} \\* @mode32" +} else { + gdb_test "ptype p_struct" "type = struct opaque_struct_t {\r\n *int wrapped_value;\r\n} \\*" +} -- 2.30.2