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) I think you want c++14_down. Marek