https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
Jason Merrill changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #18 from Jason Merrill ---
Author: jason
Date: Tue Aug 4 15:38:29 2015
New Revision: 226583
URL: https://gcc.gnu.org/viewcvs?rev=226583&root=gcc&view=rev
Log:
PR c++/66962
* logic.cc (term_list::insert): Avoid adding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #17 from Jason Merrill ---
(In reply to Andrew Sutton from comment #14)
> Created attachment 36054 [details]
>
> There is still complexity induced by the use of disjunctions. This manages
> it a little better. It could be further imp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #16 from Jason Merrill ---
(In reply to Jason Merrill from comment #15)
> So, converting A || B to !(!A && !B) will avoid the explosion at the cost of
> limiting subsumption.
Or even !!(A || B).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #15 from Jason Merrill ---
(In reply to Eric Niebler from comment #9)
> Jason, is there anything I can do in my code to avoid the quadratic
> explosion while we wait for Andrew to fix the bug?
In concepts, !(A && B) is not equivalent
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #14 from Andrew Sutton ---
Created attachment 36054
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36054&action=edit
Optimize constraint decomposition by contraction
The problem isn't strictly related to decomposition -- it's n
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #13 from Andrew Sutton ---
There are a couple of other problems in the minimized example (concept int
shows up a couple of times, there's a variable template whose initializer is a
requires expression). I doubt those contribute to the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #12 from Markus Trippelsdorf ---
This paper claims O(e log d) for size e and alternation depth d:
http://www.win.tue.nl/~jfg/articles/CSR-04-13.pdf
But I'm not sure if it is applicable.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #11 from Eric Niebler ---
Removing the disjunction in the Constructible concept causes memory usage and
compile time to drop to zero. The word from Andrew is that this is simply a
quadratic algorithm. It is unknown whether a non-quadr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #10 from Markus Trippelsdorf ---
Here is a somewhat reduced testcase:
markus@x4 tmp % cat foo.ii
namespace std {
template struct remove_cv;
template struct is_reference;
template void declval();
template struct is_constructible;
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #9 from Eric Niebler ---
Jason, is there anything I can do in my code to avoid the quadratic explosion
while we wait for Andrew to fix the bug?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
Jason Merrill changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #7 from Casey Carter ---
Created attachment 36044
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36044&action=edit
Manually flattened test case
Doesn't include the contents of any system headers.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
Eric Niebler changed:
What|Removed |Added
Attachment #36028|0 |1
is obsolete|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #5 from Casey Carter ---
(In reply to Markus Trippelsdorf from comment #2)
> /usr/local/gcc-concepts/include/c++/6.0.0/initializer_list:47:11: fatal
> error: definition of std::initializer_list does not match #include
>
This is beca
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #4 from Markus Trippelsdorf ---
(In reply to Eric Niebler from comment #3)
> I can't make sense of that error, or understand why you get that and I
> don't. You tried the command line I gave above, with the latest concept-gcc
> built
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #3 from Eric Niebler ---
I can't make sense of that error, or understand why you get that and I don't.
You tried the command line I gave above, with the latest concept-gcc built from
source?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
Markus Trippelsdorf changed:
What|Removed |Added
CC||trippels at gcc dot gnu.org
--- Co
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66962
--- Comment #1 from Eric Niebler ---
This is a blocker for STL2.
19 matches
Mail list logo