After switching the i386 check-function-bodies tests to use the new
dg-add-options check_function_bodies feature, several tests still FAIL
in similar ways on Solaris/x86:

* Some FAIL like this:

FAIL: gcc.target/i386/pr120936-6.c (test for excess errors)
Excess errors:
cc1: error: '-mnop-mcount' is not compatible with this target

  This happens because -mnop-mcount is only supported in
  i386/i386-options.cc (ix86_option_override_internal) if
  NO_PROFILE_COUNTERS.

* Others FAIL like

FAIL: gcc.target/i386/pr120936-10.c (test for excess errors)
Excess errors:
gcc/testsuite/gcc.target/i386/pr120936-10.c:23:1: sorry, unimplemented: 
profiling '-mcmodel=large' with PIC is not supported

  This error is generated in i386/i386.cc (x86_function_profiler) if
  !NO_PROFILE_COUNTERS.

NO_PROFILE_COUNTERS is only defined in dragonfly.h, x86_64.sh,
gnu-user.h, freebsd.h, cygming.h, and, netbsd-elf.h.  However, a couple
of similar tests are restricted to Linux only, so this patch follows
suit.  One could introduce a new effective-target keyword to fully
handle this, though.

Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.

Ok for trunk?

        Rainer

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


2025-11-23  Rainer Orth  <[email protected]>

        gcc/testsuite:
        * gcc.target/i386/pr120936-3.c: Restrict to *-*-linux*.
        * gcc.target/i386/pr120936-6.c: Likewise.
        * gcc.target/i386/pr120936-10.c: Likewise.
        * gcc.target/i386/pr120936-12.c: Likewise.

# HG changeset patch
# Parent  a434b1dee32cb48e74b8b89da0fe29eb57897e28
testsuite: i386: Guard NO_PROFILE_COUNTERS tests

	gcc/testsuite:
	* gcc.target/i386/pr120936-3.c: Restrict to *-*-linux*.
	* gcc.target/i386/pr120936-6.c: Likewise.
	* gcc.target/i386/pr120936-10.c: Likewise.
	* gcc.target/i386/pr120936-12.c: Likewise.

diff --git a/gcc/testsuite/gcc.target/i386/pr120936-10.c b/gcc/testsuite/gcc.target/i386/pr120936-10.c
--- a/gcc/testsuite/gcc.target/i386/pr120936-10.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-10.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { fpic && lp64 } } } */
+/* { dg-do compile { target { { *-*-linux* && lp64 } && fpic } } } */
 /* { dg-options "-O2 -mcmodel=large -pg -mno-fentry -fpic -fno-shrink-wrap" } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^(1|\t?\.)} } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-12.c b/gcc/testsuite/gcc.target/i386/pr120936-12.c
--- a/gcc/testsuite/gcc.target/i386/pr120936-12.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-12.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { fpic && lp64 } } } */
+/* { dg-do compile { target { { *-*-linux* && lp64 } && fpic } } } */
 /* { dg-options "-O2 -mcmodel=large -mrecord-mcount -pg -mno-fentry -fpic -fno-shrink-wrap" } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^(1|\t?\.)} } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-3.c b/gcc/testsuite/gcc.target/i386/pr120936-3.c
--- a/gcc/testsuite/gcc.target/i386/pr120936-3.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-3.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target fpic } } */
+/* { dg-do compile { target { *-*-linux* && fpic } } } */
 /* { dg-options "-O2 -mnop-mcount -pg -mno-fentry -fno-pic -fno-shrink-wrap" } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-6.c b/gcc/testsuite/gcc.target/i386/pr120936-6.c
--- a/gcc/testsuite/gcc.target/i386/pr120936-6.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-6.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target fpic } } */
+/* { dg-do compile { target { *-*-linux* && fpic } } } */
 /* { dg-options "-O2 -mrecord-mcount -mnop-mcount -pg -mno-fentry -fno-pic -fno-shrink-wrap" } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^(1|\t?\.)} } } */

Reply via email to