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. > 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 > Marek