[Bug other/63699] bootstrap fails with Apple clang 6.0
fxcoudert at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Nov 7 08:42:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63699
Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fxcoudert at gcc dot gnu.org
--- Comment #3 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
A minimal testcase for this is:
#include "safe-ctype.h"
#include <string>
with the safe-ctype.h from trunk. Apparently, the C++ header <string> uses the
type functions, which are poisoned by GCC's safe-ctype.h header. The proper
fix, in my opinion, is to include <string> before "safe-ctype.h", which is
itself included in gcc/system.h.
The same logic already appears in go/go-system.h, which says:
// We don't really need iostream, but some versions of gmp.h include
// it when compiled with C++, which means that we need to include it
// before the macro magic of safe-ctype.h, which is included by
// system.h.
Here's the suggested patch, which I can't test right now unfortunately. Feel
free to submit it for review:
Index: plugin.cc
===================================================================
--- plugin.cc (revision 217000)
+++ plugin.cc (working copy)
@@ -31,6 +31,8 @@
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+#include <string>
+
#include "gcc-plugin.h"
#include "system.h"
#include "coretypes.h"
@@ -55,8 +57,6 @@
#include "connection.hh"
#include "rpc.hh"
-#include <string>
-
#ifdef __GNUC__
#pragma GCC visibility push(default)
#endif
More information about the Gcc-bugs
mailing list