Bug 26953 - [gcc 4.8] FAIL: gdb.base/endianity.exp: x/xh &o.w
Summary: [gcc 4.8] FAIL: gdb.base/endianity.exp: x/xh &o.w
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: testsuite (show other bugs)
Version: HEAD
: P2 normal
Target Milestone: 11.1
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-26 14:52 UTC by Tom de Vries
Modified: 2020-12-13 16:34 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom de Vries 2020-11-26 14:52:27 UTC
There's an xfail, but it's not effective for the second one:
...
# scalar_storage_order requires gcc >= 6                                                      
if { ([test_compiler_info {gcc-[0-5]-*}] || ![test_compiler_info gcc*]) } {
  setup_xfail "*-*-*"
}
gdb_test "x/x &o.v" "0x04000000"
gdb_test "x/xh &o.w" "0x0300"
...
Comment 1 Tom de Vries 2020-11-26 16:50:57 UTC
Tentative patch:
...
diff --git a/gdb/testsuite/gdb.base/endianity.exp b/gdb/testsuite/gdb.base/endianity.exp
index 2fa9ed3..61cbb50 100644
--- a/gdb/testsuite/gdb.base/endianity.exp
+++ b/gdb/testsuite/gdb.base/endianity.exp
@@ -36,10 +36,12 @@ gdb_test "print o.d = -23.125" "= -23.125"
 
 # scalar_storage_order requires gcc >= 6
 if { ([test_compiler_info {gcc-[0-5]-*}] || ![test_compiler_info gcc*]) } {
-  setup_xfail "*-*-*"
+    gdb_test "x/x &o.v" "0x00000004"
+    gdb_test "x/xh &o.w" "0x0003"
+} else {
+    gdb_test "x/x &o.v" "0x04000000"
+    gdb_test "x/xh &o.w" "0x0300"
 }
-gdb_test "x/x &o.v" "0x04000000"
-gdb_test "x/xh &o.w" "0x0300"
 
 gdb_test "print o" "= {v = 4, w = 3, x = 2, f = 1.5, cplx = 1.25 \\+ 7.25i, d = -23.125}" \
     "print o after assignment"
...
Comment 3 Sourceware Commits 2020-12-13 16:22:44 UTC
The master branch has been updated by Tom de Vries <vries@sourceware.org>:

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

commit 862fcbd8f02b03cbf37b452e35bff8361d7a0208
Author: Tom de Vries <tdevries@suse.de>
Date:   Sun Dec 13 17:22:40 2020 +0100

    [gdb/testsuite] Fix gdb.base/endianity.exp with gcc-4.8
    
    When running test-case gdb.base/endianity.exp using gcc-4.8, we get:
    ...
    (gdb) x/x &o.v^M
    0x7fffffffd120: 0x00000004^M
    (gdb) XFAIL: gdb.base/endianity.exp: x/x &o.v
    x/xh &o.w^M
    0x7fffffffd124: 0x0003^M
    (gdb) FAIL: gdb.base/endianity.exp: x/xh &o.w
    ...
    
    The gcc 4.8 compiler does not support the scalar_storage_order attribute, so
    the testcase is compiled without that attribute, and the expected results are
    different.
    
    Fix this by rather than xfailing, skipping the tests if the compiler does not
    support the scalar_storage_order attribute.
    
    Tested on x86_64-linux, with gcc-4.8, gcc-7, and clang-10.
    
    gdb/testsuite/ChangeLog:
    
    2020-12-13  Tom de Vries  <tdevries@suse.de>
    
            PR testsuite/26953
            * gdb.base/endianity.exp: Skip tests requiring scalar_storage_order
            attribute support if compiler doesn't support it.
Comment 4 Tom de Vries 2020-12-13 16:34:16 UTC
Patch fixing test-case committed, marking resolved-fixed.