clang: Do not use libstdc++ when C++11 is enabled
authorBradley T. Hughes <bradley.hughes@nokia.com>
Wed, 13 Jun 2012 11:23:53 +0000 (13:23 +0200)
committerQt by Nokia <qt-info@nokia.com>
Mon, 18 Jun 2012 22:39:28 +0000 (00:39 +0200)
We expect that the C++ library also supports C++11 when the compiler
says it does as well. When using clang with libstdc++, the library has
no C++11 support or headers, so we cannot use, for example, #include
<initializer_lists>.

Change-Id: I844877107256f15ab314e8f82fe54434dbb07638
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
config.tests/unix/c++11/c++11.cpp

index d541144..6717236 100644 (file)
 #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
 // Compiler claims to support C++11, trust it
 #else
-#  error "__cplusplus must be >= 201103L"
+#  error "__cplusplus must be >= 201103L, or __GXX_EXPERIMENTAL_CXX0X__ must be defined"
+#endif
+
+#include <utility>
+#if defined(__clang__) && !defined(_LIBCPP_VERSION)
+#  error "C++11 with clang requires libc++ runtime"
 #endif
 
 int main(int, char **) { return 0; }