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

Reply via email to