Hi,

> On 17 Feb 2023, at 06:42, Alexandre Oliva via Gcc-patches 
> <gcc-patches@gcc.gnu.org> wrote:
> 
> 
> The test is compatible with clang as well as gcc, but ISTM that
> testing for the __clang__ macro is just as potentially error-prone as
> macros that used to be GCC-specific are now defined in compilers that
> aim for GCC compatibility.

It remains useful to be able to check tests on both compilers.

As a matter of interest, do you know of any other compiler claiming “__clang__” 
(I have
treated that as safe so far).

>  Use a __has_include feature test instead.

I think we need to do

#if __has_include(<coroutine>)
…
#elif __has_include(<experimental/coroutine>)
…

because newer clang has the include in the standard place.
Iain

> 
> Regstrapped on x86_64-linux-gnu.
> Tested on arm-vxworks7 (gcc-12) and arm-eabi (trunk).  Ok to install?
> 
> for  gcc/testsuite/ChangeLog
> 
>       PR c++/100127
>       * g++.dg/coroutines/pr100127.C: Test for header rather than
>       compiler macro.
> ---
> gcc/testsuite/g++.dg/coroutines/pr100127.C   |    2 +-
> gcc/testsuite/g++.dg/coroutines/pr100772-a.C |    2 +-
> gcc/testsuite/g++.dg/coroutines/pr100772-b.C |    2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/gcc/testsuite/g++.dg/coroutines/pr100127.C 
> b/gcc/testsuite/g++.dg/coroutines/pr100127.C
> index 374cd710077af..1eaa72ff0acdd 100644
> --- a/gcc/testsuite/g++.dg/coroutines/pr100127.C
> +++ b/gcc/testsuite/g++.dg/coroutines/pr100127.C
> @@ -1,4 +1,4 @@
> -#ifdef __clang__
> +#if __has_include(<experimental/coroutine>) // for __clang__
> #include <experimental/coroutine>
> namespace std {
>   using namespace std::experimental;
> diff --git a/gcc/testsuite/g++.dg/coroutines/pr100772-a.C 
> b/gcc/testsuite/g++.dg/coroutines/pr100772-a.C
> index a325d384fc390..724c377c82e5b 100644
> --- a/gcc/testsuite/g++.dg/coroutines/pr100772-a.C
> +++ b/gcc/testsuite/g++.dg/coroutines/pr100772-a.C
> @@ -1,5 +1,5 @@
> //  { dg-additional-options "-fsyntax-only " }
> -#ifdef __clang__
> +#if __has_include(<experimental/coroutine>) // for __clang__
> #include <experimental/coroutine>
> namespace std {
>   using namespace std::experimental;
> diff --git a/gcc/testsuite/g++.dg/coroutines/pr100772-b.C 
> b/gcc/testsuite/g++.dg/coroutines/pr100772-b.C
> index 6cdf8d1e529e5..4cf31e5f9e0c2 100644
> --- a/gcc/testsuite/g++.dg/coroutines/pr100772-b.C
> +++ b/gcc/testsuite/g++.dg/coroutines/pr100772-b.C
> @@ -1,4 +1,4 @@
> -#ifdef __clang__
> +#if __has_include(<experimental/coroutine>) // for __clang__
> #include <experimental/coroutine>
> namespace std {
>   using namespace std::experimental;
> 
> -- 
> Alexandre Oliva, happy hacker                https://FSFLA.org/blogs/lxo/
>   Free Software Activist                       GNU Toolchain Engineer
> Disinformation flourishes because many people care deeply about injustice
> but very few check the facts.  Ask me about <https://stallmansupport.org>

Reply via email to