Hi Marek,

On 14 Feb 2025, at 17:27, Marek Polacek wrote:

> On Fri, Feb 14, 2025 at 04:20:07PM +0000, Simon Martin wrote:
>> The case in this PR does not ICE anymore after the fix for PR118319.
>>
>> This patch simply adds the case to the testsuite.
>>
>> Successfully tested on x86_64-apple-darwin19.6.0.
>>
>>      PR c++/117324
>>
>> gcc/testsuite/ChangeLog:
>>
>>      * g++.dg/parse/defarg19.C: New test.
>>
>> ---
>>  gcc/testsuite/g++.dg/parse/defarg19.C | 12 ++++++++++++
>>  1 file changed, 12 insertions(+)
>>  create mode 100644 gcc/testsuite/g++.dg/parse/defarg19.C
>>
>> diff --git a/gcc/testsuite/g++.dg/parse/defarg19.C 
>> b/gcc/testsuite/g++.dg/parse/defarg19.C
>> new file mode 100644
>> index 00000000000..bb8bab28d93
>> --- /dev/null
>> +++ b/gcc/testsuite/g++.dg/parse/defarg19.C
>> @@ -0,0 +1,12 @@
>> +// PR c++/117324
>> +// { dg-do "compile" { target c++11 } }
>> +
>> +template<typename = int>
>> +struct ct1 {
>> +  friend void f(ct1, // { dg-error "specifies default" }
>> +            int = [](int p = [] {}) { return p; }(); ) // { dg-error 
>> "expected|declares a non-template" }
>> +  {}
>> +};
>> +void test() {
>> +  f(ct1{}); // { dg-error "missing template arguments|not declared" 
>> "" { target c++11_down } }
>
> This fails with C++14:
> FAIL: g++.dg/parse/defarg19.C  -std=c++14 (test for excess errors)
Doh, indeed :-/

> I think you want c++14_down.
Thanks, fixed in the updated attached patch, tested with
   make -C gcc check-c++-all RUNTESTFLAGS="dg.exp=defarg19.C"

Simon
From 3b84cb4f0d26add0dd53d18e04e271ea7c4a992b Mon Sep 17 00:00:00 2001
From: Simon Martin <si...@nasilyan.com>
Date: Fri, 14 Feb 2025 17:40:23 +0100
Subject: [PATCH] c++: Add testcase for now fixed issue [PR117324]

The case in this PR does not ICE anymore after the fix for PR118319.

This patch simply adds the case to the testsuite.

Successfully tested on x86_64-apple-darwin19.6.0 with
  make check-c++-all RUNTESTFLAGS="dg.exp=defarg19.C"

        PR c++/117324

gcc/testsuite/ChangeLog:

        * g++.dg/parse/defarg19.C: New test.

---
 gcc/testsuite/g++.dg/parse/defarg19.C | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 gcc/testsuite/g++.dg/parse/defarg19.C

diff --git a/gcc/testsuite/g++.dg/parse/defarg19.C 
b/gcc/testsuite/g++.dg/parse/defarg19.C
new file mode 100644
index 00000000000..df0819ae6a5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/defarg19.C
@@ -0,0 +1,12 @@
+// PR c++/117324
+// { dg-do "compile" { target c++11 } }
+
+template<typename = int>
+struct ct1 {
+  friend void f(ct1, // { dg-error "specifies default" }
+               int = [](int p = [] {}) { return p; }(); ) // { dg-error 
"expected|declares a non-template" }
+  {}
+};
+void test() {
+  f(ct1{}); // { dg-error "missing template arguments|not declared" "" { 
target c++14_down } }
+}
-- 
2.44.0

Reply via email to