This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/47380] concept checking and incomplete types
- From: "marc.glisse at normalesup dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 23 Aug 2011 15:27:35 +0000
- Subject: [Bug libstdc++/47380] concept checking and incomplete types
- Auto-submitted: auto-generated
- References: <bug-47380-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47380
--- Comment #11 from Marc Glisse <marc.glisse at normalesup dot org> 2011-08-23 15:27:35 UTC ---
In case someone else has issues with _GLIBCXX_CONCEPT_CHECKS, all the bad cases
I have hit came from _SGIAssignableConcept, so I simply removed the content of
that concept (not very subtle I know...). Afterwards, all the errors given by
the concept checking matched real bugs in our code, and there were quite a few
so the patch didn't completely kill the checking. (Note that this is not a
proposition to change libstdc++, just information for anyone reading this
entry)
--- boost_concept_check.h.orig 2011-01-28 15:01:12.177453226 +0100
+++ boost_concept_check.h 2011-01-28 15:01:29.665445131 +0100
@@ -201,15 +201,9 @@
struct _SGIAssignableConcept
{
void __constraints() {
- _Tp __b _IsUnused(__a);
- __a = __a; // require assignment operator
- __const_constraints(__a);
}
void __const_constraints(const _Tp& __b) {
- _Tp __c _IsUnused(__b);
- __a = __b; // const required for argument to assignment
}
- _Tp __a;
};
template <class _From, class _To>