[gdb/testsuite] Fix gdb.base/endianity.exp with gcc-4.8
authorTom de Vries <tdevries@suse.de>
Sun, 13 Dec 2020 16:22:40 +0000 (17:22 +0100)
committerTom de Vries <tdevries@suse.de>
Sun, 13 Dec 2020 16:22:40 +0000 (17:22 +0100)
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.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/endianity.exp

index ca72392953464b3f514382460ef8643c36dd7784..c33f0b29251939678a1bec064185aa1a7bfcb3ed 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2020-12-13  Tom de Vries  <tdevries@suse.de>
 
        * lib/gdb.exp (gdb_compile_shlib): Handle ada.
index 2fa9ed3bf162749735dbfa0fdcdd266b78a8614c..4520799d04e72f8fcfc1ac343833eaaae39f9353 100644 (file)
@@ -34,12 +34,15 @@ gdb_test "print o.x = 2" "= 2"
 gdb_test "print o.f = 1.5" "= 1.5"
 gdb_test "print o.d = -23.125" "= -23.125"
 
-# scalar_storage_order requires gcc >= 6
+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"
+
 if { ([test_compiler_info {gcc-[0-5]-*}] || ![test_compiler_info gcc*]) } {
-  setup_xfail "*-*-*"
+    # The rest of the testcase requires Scalar Storage Order support.
+    # This compiler does not support it, so skip the rest.
+    return -1
 }
+
 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"