testsuite: Fix up g++.dg/cpp2a/concepts-lambda3.C [PR108972]

Message ID ZBAoNGDJPNd069B5@tucnak
State Unresolved
Headers
Series testsuite: Fix up g++.dg/cpp2a/concepts-lambda3.C [PR108972] |

Checks

Context Check Description
snail/gcc-patch-check warning Git am fail log

Commit Message

Jakub Jelinek March 14, 2023, 7:54 a.m. UTC
  Hi!

On Fri, Mar 10, 2023 at 01:49:38PM -0500, Jason Merrill via Gcc-patches wrote:
> gcc/testsuite/ChangeLog:
> 
> 	* g++.dg/cpp2a/concepts-lambda3.C: Run at lower std levels,
> 	but expect errors.

I'm seeing
+UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++11 compilation failed to produce executable
+UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++14 compilation failed to produce executable
+UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++17 compilation failed to produce executable
+UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++98 compilation failed to produce executable
with this change, and if I test with
GXX_TESTSUITE_STDS=98,11,14,17,20,2b make check-g++ -k RUNTESTFLAGS="--target_board=unix\{-m32,-m64,-m64/-fconcepts\} dg.exp=concepts-lambda3.C"
I see even FAILs for the -fconcepts case, so apparently even -std=c++17
-fconcepts isn't enough to make it compile without errors.

The following patch will expect errors for all of c++17_down and will
make the test dg-do compile for that case too, such that the UNRESOLVED
stuff is gone.

Ok for trunk?

2023-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108972
	* g++.dg/cpp2a/concepts-lambda3.C: Use dg-do run only for c++20,
	for c++17_down dg-do compile.  Expect dg-excess-errors for c++17_down
	rather than ! concepts.



	Jakub
  

Comments

Jason Merrill March 14, 2023, 2:34 p.m. UTC | #1
On 3/14/23 03:54, Jakub Jelinek wrote:
> Hi!
> 
> On Fri, Mar 10, 2023 at 01:49:38PM -0500, Jason Merrill via Gcc-patches wrote:
>> gcc/testsuite/ChangeLog:
>>
>> 	* g++.dg/cpp2a/concepts-lambda3.C: Run at lower std levels,
>> 	but expect errors.
> 
> I'm seeing
> +UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++11 compilation failed to produce executable
> +UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++14 compilation failed to produce executable
> +UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++17 compilation failed to produce executable
> +UNRESOLVED: g++.dg/cpp2a/concepts-lambda3.C  -std=c++98 compilation failed to produce executable
> with this change, and if I test with
> GXX_TESTSUITE_STDS=98,11,14,17,20,2b make check-g++ -k RUNTESTFLAGS="--target_board=unix\{-m32,-m64,-m64/-fconcepts\} dg.exp=concepts-lambda3.C"
> I see even FAILs for the -fconcepts case, so apparently even -std=c++17
> -fconcepts isn't enough to make it compile without errors.
> 
> The following patch will expect errors for all of c++17_down and will
> make the test dg-do compile for that case too, such that the UNRESOLVED
> stuff is gone.
> 
> Ok for trunk?

OK.

> 2023-03-14  Jakub Jelinek  <jakub@redhat.com>
> 
> 	PR c++/108972
> 	* g++.dg/cpp2a/concepts-lambda3.C: Use dg-do run only for c++20,
> 	for c++17_down dg-do compile.  Expect dg-excess-errors for c++17_down
> 	rather than ! concepts.
> 
> --- gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C.jj	2023-03-13 23:01:42.082959131 +0100
> +++ gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C	2023-03-14 08:48:12.834128044 +0100
> @@ -1,5 +1,6 @@
> -// { dg-do run }
> -// { dg-excess-errors "" { target { ! concepts } } } (PR108972)
> +// { dg-do run { target c++20 } }
> +// { dg-do compile { target c++17_down } }
> +// { dg-excess-errors "" { target { c++17_down } } } (PR108972)
>   
>   template<typename T>
>   concept C1 = __is_same_as(T, int)
> 
> 
> 	Jakub
>
  

Patch

--- gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C.jj	2023-03-13 23:01:42.082959131 +0100
+++ gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C	2023-03-14 08:48:12.834128044 +0100
@@ -1,5 +1,6 @@ 
-// { dg-do run }
-// { dg-excess-errors "" { target { ! concepts } } } (PR108972)
+// { dg-do run { target c++20 } }
+// { dg-do compile { target c++17_down } }
+// { dg-excess-errors "" { target { c++17_down } } } (PR108972)
 
 template<typename T>
 concept C1 = __is_same_as(T, int)