On 14 Feb 2025, at 17:51, Marek Polacek wrote: > On Fri, Feb 14, 2025 at 04:45:01PM +0000, Simon Martin wrote: >> 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 > > Thanks, I think you can commit this now. Merged as r15-7574-g6302f478433166.
Simon