Well,,that's unfortunate. Please forgive the alternative patch submission. https://github.com/asutton/gcc/blob/master/concepts.patch
> Attached is a rework of the Concepts TS implementation to match the > Working Draft. It's a big patch -- I'd loved to make it smaller, but > it didn't work out that way. > > Here's a brief summary of changes: > > - Make concepts work with -std=c++2a; warn if -fconcepts is also supplied. > - Add a new flag -fconcepts-ts to enable TS syntax* when -std=c++2a is used. > - No more bool for concepts. They are their own kind of declaration. > - New grammar for requires clauses (unfortunately). This can be > overriden with -fconcepts-ts. > - Support "concept bool" with -fconcepts-ts. This includes both > variable and function concepts. > - Constraints are instantiated only at the point of use and properly > interleave substitution and evaluation. This should fix any issues > with "premature substitution" errors. > - Implement semantic comparison of atomic constraints (P0717). This > may be buggy. More testing with complex refinement hierarchies is > needed. > - Completely rewrite the subsumption algorithm in logic. The WD broke > a number of assumptions the previous version relied on, so a simple > fix wasn't possible. We haven't seen the performance issues related to > subsumption that showed up in the past. They're still there, but other > core changes minimize the likelihood of achieving worst case. > - Declaration matching is syntactic (P0716). > - Warnings are emitted for the use of TS syntax unless -fconcepts-ts > is specified. And if you do use -fconcepts, the same-type rule for > abbreviated function templates is dead. > - And just because... make template introduction semantics actually > conform to the TS. We weren't allowing the introduction of a fixed > series of template parameters for an introduced pack. We do now. > > This is not a perfect patch. > > - It somehow breaks partial template specializations of variable > templates (cpp2a/concepts pr80471.C). I have no idea how that > happened. It almost looks like a GC bug. > - There's a new regression in cpp2a/concepts-ts2.C) > - This breaks a lot of concepts TS support (the g++.dg/concepts dir). > - We've seen other errors in parts of GCC not even remotely related to > concepts**. > > My goals over the next few weeks are to clean up the regressions and > start working through the backlog of concepts issues. That includes > fixing new issues as they arise. > > * This patch does not preserve the Concepts TS semantics. Anybody > relying on e.g., subtleties of the partial ordering rules in the TS > will find themselves with broken code. This was a conscious choice. > there are serious design issues in the TS. > > ** Unfortunately, my testing effort before sending this patch is a bit > hampered by the fact that a clean bootstrap build ICEs here (bootstrap > build on Mac OS -- can give more details if needed). > > ../../isl/isl_tab_pip.c: In function ‘isl_tab_basic_set_non_trivial_lexmin’: > ../../isl/isl_tab_pip.c:5087:21: internal compiler error: in check, at > tree-vrp.c:155 > 5087 | __isl_give isl_vec *isl_tab_basic_set_non_trivial_lexmin( > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > This one isn't my fault :) > > Enjoy, > >> Hi. This is the qmail-send program at sourceware.org. >> I'm afraid I wasn't able to deliver your message to the following addresses. >> This is a permanent error; I've given up. Sorry it didn't work out. >> >> <gcc-patches@gcc.gnu.org>: >> ezmlm-reject: fatal: Sorry, I don't accept messages larger than 400000 bytes (#5.2.3) > Andrew Sutton