This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Giant concepts patch
- From: Jason Merrill <jason at redhat dot com>
- To: Andrew Sutton <andrew dot n dot sutton at gmail dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, Ville Voutilainen <ville dot voutilainen at gmail dot com>, Casey Carter <Casey at carter dot net>
- Date: Tue, 19 Jul 2016 17:25:45 -0400
- Subject: Re: [PATCH] Giant concepts patch
- Authentication-results: sourceware.org; auth=none
- References: <CANq5SytDHDqaKDVnvq_MAyH70G4tR_KmnqayGegiksX6GoDZgg@mail.gmail.com> <CADzB+2msj4RVC=LiG9sNPGB28bAor++it7dZmz8RUqxZMAXPXw@mail.gmail.com> <CADzB+2mBjNCpBZH334GkBOxMGQ_+1FX7V88ZugecRhTsp4vKPQ@mail.gmail.com> <CANq5Sys-GDL+5NJVRzc80e00zMOg6WtW4P1eYQdzb2PnO7RtmQ@mail.gmail.com> <CADzB+2=K8_9U1Kts_E8vgN4iykhkfrEFJvaGi-uknecs0sF+JA@mail.gmail.com> <CANq5SyvFbXjA-w9fk2-whLn11A88ZKp98xcau66bTJg+qoJCpg@mail.gmail.com> <CANq5SysU8YYci9-P62LiLTXFCpg1ViXwYfE4xXOn3FB9BiiQAw@mail.gmail.com>
On Sun, Jul 10, 2016 at 11:20 AM, Andrew Sutton
> I did find another bug building cmcstl2, hence the attached
> disable-opt patch. For some reason, the memoization of concept
> satisfaction is giving momoized results for concept + args that have
> not yet been evaluated. This is exactly the same problem that made me
> disable the lookup/memoize_constraint_sat optimizations. Somehow I'm
> getting the same hash code for different arguments, and they also
> happen to compare equal.
This bug turned out to be e.g. substituting int into "requires
C<typename T::foo>", which fails because int has no foo member, and
therefore deciding that C<int> is false.
After I fixed that, I tried turning on the constraint memos, which
didn't seem to break anything.
I've pushed to the jason/concepts-rewrite branch again. See any
reason I shouldn't merge to trunk now?