Re: [PATCH] libstdc++: Reject user-defined specializations for coroutine_handle.
Jakub Jelinek <[email protected]>
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.libstdc++.devel |
|---|---|
| Message-ID | <am1D_EJc5FoKSCXy@tucnak> |
On Fri, Jul 31, 2026 at 05:00:55PM +0200, Tomasz Kamiński wrote: > The P0912R5, "Merge Coroutines TS into C++20 working draft" that > introduced them already included made specializing coroutine_handle > ill-formed, no diagnostic required. > > This is QoI improvment, that produces diagnostic in such situation > by decaroting base template with [[_Clang::__no_specializations]]. > > libstdc++-v3/ChangeLog: > > * include/std/coroutine: Ignore -Winvalid-specialization in file. > (std::coroutine_handle): Add clang::no_specializations attribute. > * testsuite/18_support/coroutines/specializations_neg.cc: New test. This regressed +FAIL: g++.dg/coroutines/pr105475-3.C -std=c++20 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-3.C -std=c++23 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-3.C -std=c++26 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-3.C -std=c++29 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-broken-spec.C -std=c++20 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-broken-spec.C -std=c++23 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-broken-spec.C -std=c++26 (test for excess errors) +FAIL: g++.dg/coroutines/pr105475-broken-spec.C -std=c++29 (test for excess errors) (at least on i686-linux). Jakub