The gcc.dg/tree-ssa/cswtch-[67].c tests FAIL on Solaris/SPARC with the
native as:

FAIL: gcc.dg/tree-ssa/cswtch-6.c scan-assembler .rodata.cst16
FAIL: gcc.dg/tree-ssa/cswtch-7.c scan-assembler .rodata.cst32

The issue is the same in both cases: compared to the gas version, with
as there's only

-       .section        .rodata.cst32,"aM",@progbits,32
+       .section        ".rodata"

It turns out that varasm.c (mergeable_constant_section) only emits the
former if HAVE_GAS_SHF_MERGE, which is 0 with the native as.

Fixed by xfailing the tests in this case.

Tested on sparc-sun-solaris2.11 with both as and gas.

Committed.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2025-07-30  Rainer Orth  <[email protected]>

        gcc/testsuite:
        * gcc.dg/tree-ssa/cswtch-6.c (dg-final): xfail on
        sparc*-*-solaris2* && !gas.
        * gcc.dg/tree-ssa/cswtch-7.c: Likewise.

# HG changeset patch
# Parent  a0ae038ce4e1b9e36774667b4e5998d3aec93805
testsuite: Fix gcc.dg/tree-ssa/cswtch-[67].c on Solaris/SPARC with as

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c b/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c
--- a/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c
@@ -40,4 +40,4 @@ f1 (int v, int w)
   foo (i, j);
 }
 
-/* { dg-final { scan-assembler ".rodata.cst16" } } */
+/* { dg-final { scan-assembler ".rodata.cst16" { xfail { sparc*-*-solaris2* && { ! gas } } } } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cswtch-7.c b/gcc/testsuite/gcc.dg/tree-ssa/cswtch-7.c
--- a/gcc/testsuite/gcc.dg/tree-ssa/cswtch-7.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cswtch-7.c
@@ -45,4 +45,4 @@ f1 (int v, int w)
   foo (i, j);
 }
 
-/* { dg-final { scan-assembler ".rodata.cst32" } } */
+/* { dg-final { scan-assembler ".rodata.cst32" { xfail { sparc*-*-solaris2* && { ! gas } } } } } */

Reply via email to