* gdb.dwarf2/dw2-icc-opaque.S: Remove .align directives.
authorUlrich Weigand <uweigand@de.ibm.com>
Thu, 2 Aug 2012 15:57:49 +0000 (15:57 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Thu, 2 Aug 2012 15:57:49 +0000 (15:57 +0000)
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
gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp

index 6e759667f850a1ca44a04fc7e31de59459efa497..0d86bb1ec12d0ad62457ccfd21aa3bf202763a60 100644 (file)
@@ -1,3 +1,10 @@
+2012-08-02  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * 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  <uweigand@de.ibm.com>
 
        * gdb.base/watchpoint.c (func2): Initialize local_a.  Add
index 117866d5cb88d41bfafad855ff6eb677520d849b..47b017b3e43090e00a726041611aaee4af4f2603 100644 (file)
@@ -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. */
index db78006b5090a284a03cc0d6c5f50b581dadd612..fe7d7e8e8c85e5f0d79b84805ceeff523c9e4228 100644 (file)
@@ -36,4 +36,10 @@ clean_restart $executable
 # type = struct opaque_struct_t {
 #     <no data fields>
 # } *
-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} \\*"
+}