From ab0c2c367a87b03f38a486a118b89335837619dc Mon Sep 17 00:00:00 2001
From: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date: Wed, 14 Feb 2024 09:25:03 +0100
Subject: [PATCH] testsuite: xfail c-c++-common/pr103798-2.c for C++ on Solaris
 [PR113706]

c-c++-common/pr103798-2.c FAILs on Solaris when compiled as C++:

FAIL: c-c++-common/pr103798-2.c  -std=gnu++14  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-2.c  -std=gnu++17  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-2.c  -std=gnu++20  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-2.c  -std=gnu++98  scan-assembler-not memchr

As Jason analyzed, Solaris <string.h> declares memchr for C++ as returning
const void * as specified by the C++ standard, while gcc expects the return
type to be void * like in C.

So this patch xfails the test for C++ on Solaris.

Tested on sparc-sun-solaris2.11 and x86_64-pc-linux-gnu.

2024-02-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gcc/testsuite:
	PR c++/113706
	* c-c++-common/pr103798-2.c (scan-assembler-not): xfail for C++ on
	Solaris.
---
 gcc/testsuite/c-c++-common/pr103798-2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/c-c++-common/pr103798-2.c b/gcc/testsuite/c-c++-common/pr103798-2.c
index e7e99c3679ec..bc126c205e1e 100644
--- a/gcc/testsuite/c-c++-common/pr103798-2.c
+++ b/gcc/testsuite/c-c++-common/pr103798-2.c
@@ -27,4 +27,5 @@ main ()
  return 0;
 }
 
-/* { dg-final { scan-assembler-not "memchr" } } */
+/* See PR c++/113706 for the xfail.  */
+/* { dg-final { scan-assembler-not "memchr" { xfail { c++ && *-*-solaris2* } } } } */
-- 
GitLab