The gcc.dg/hierarchical-discriminator-loop-version.c etc. tests FAIL on
Solaris with the native assembler:

FAIL: gcc.dg/hierarchical-discriminator-loop-version.c scan-assembler \\\\.loc 
1 (9|10) [0-9]+ is_stmt 0 discriminator [0-9]+
FAIL: gcc.dg/hierarchical-discriminator-unroll.c scan-assembler \\\\.loc 1 17 7 
is_stmt 0 discriminator ([1-9][0-9]*|0x[1-9a-fA-F][0-9a-fA-F]*)
FAIL: gcc.dg/hierarchical-discriminator-vect-version.c scan-assembler \\\\.loc 
1 13 [0-9]+ is_stmt 0 discriminator ([1-9][0-9]*|0x[1-9a-fA-F][0-9a-fA-F]*)

When using Solaris as, the .loc directives aren't present.  Their use is
guarded by dwarf2out.cc (dwarf2out_default_as_loc_support), which
ultimately depends on HAVE_AS_DWARF2_DEBUG_LINE

To avoid this, this patch restricts the scans to gas targets, which is
better than what we currently have.

Tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11 (as and gas),
and x86_64-pc-linux-gnu.

Committed to trunk.

Given that target gas is only an approximation for
HAVE_AS_DWARF2_DEBUG_LINE, it would be better to have an effective
target for the latter.  I'm working on a patch to automatically create
those from auto-host.h at build time, but that's stage 1 material and
probably overkill for just those three tests.

        Rainer

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


2026-02-17  Rainer Orth  <[email protected]>

        gcc/testsuite:
        * gcc.dg/hierarchical-discriminator-loop-version.c
        (scan-assembler): Require gas.
        * gcc.dg/hierarchical-discriminator-unroll.c: Likewise.
        * gcc.dg/hierarchical-discriminator-vect-version.c: Likewise.

# HG changeset patch
# Parent  9e92e1e29ce526680dc3105793c6eedd062b9b00
testsuite: xfail gcc.dg/hierarchical-discriminator-loop-version.c etc. without gas

diff --git a/gcc/testsuite/gcc.dg/hierarchical-discriminator-loop-version.c b/gcc/testsuite/gcc.dg/hierarchical-discriminator-loop-version.c
--- a/gcc/testsuite/gcc.dg/hierarchical-discriminator-loop-version.c
+++ b/gcc/testsuite/gcc.dg/hierarchical-discriminator-loop-version.c
@@ -17,4 +17,4 @@ test_loop_versioning (double *x, int ste
 
 /* Check that loop versioning occurred and discriminators are present on the loop body. */
 /* { dg-final { scan-tree-dump "versioned this loop for when certain strides are 1" "lversion" } } */
-/* { dg-final { scan-assembler "\\.loc 1 (9|10) \[0-9\]+ is_stmt 0 discriminator \[0-9\]+" } } */
+/* { dg-final { scan-assembler "\\.loc 1 (9|10) \[0-9\]+ is_stmt 0 discriminator \[0-9\]+" { target gas } } } */
diff --git a/gcc/testsuite/gcc.dg/hierarchical-discriminator-unroll.c b/gcc/testsuite/gcc.dg/hierarchical-discriminator-unroll.c
--- a/gcc/testsuite/gcc.dg/hierarchical-discriminator-unroll.c
+++ b/gcc/testsuite/gcc.dg/hierarchical-discriminator-unroll.c
@@ -27,4 +27,4 @@ test_unroll (void)
    The exact values depend on what other passes have run, but all should be non-zero. */
 
 /* Check that unrolled iterations have non-zero discriminators on the asm statement line. */
-/* { dg-final { scan-assembler "\\.loc 1 17 7 is_stmt 0 discriminator (\[1-9\]\[0-9\]*|0x\[1-9a-fA-F\]\[0-9a-fA-F\]*)" } } */
+/* { dg-final { scan-assembler "\\.loc 1 17 7 is_stmt 0 discriminator (\[1-9\]\[0-9\]*|0x\[1-9a-fA-F\]\[0-9a-fA-F\]*)" { target gas } } } */
diff --git a/gcc/testsuite/gcc.dg/hierarchical-discriminator-vect-version.c b/gcc/testsuite/gcc.dg/hierarchical-discriminator-vect-version.c
--- a/gcc/testsuite/gcc.dg/hierarchical-discriminator-vect-version.c
+++ b/gcc/testsuite/gcc.dg/hierarchical-discriminator-vect-version.c
@@ -16,4 +16,4 @@ test_vectorize (int *a, int *b, int *c, 
 
 /* Check that vectorized code has discriminators on the main loop body line.
    The discriminator should be non-zero to distinguish vector vs scalar versions. */
-/* { dg-final { scan-assembler "\\.loc 1 13 \[0-9\]+ is_stmt 0 discriminator (\[1-9\]\[0-9\]*|0x\[1-9a-fA-F\]\[0-9a-fA-F\]*)" } } */
+/* { dg-final { scan-assembler "\\.loc 1 13 \[0-9\]+ is_stmt 0 discriminator (\[1-9\]\[0-9\]*|0x\[1-9a-fA-F\]\[0-9a-fA-F\]*)" { target gas } } } */

Reply via email to