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

Reply via email to