From 84b163cf66215252e5f2567382168eb8881b2538 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 4 Oct 2012 22:23:07 +0000 Subject: [PATCH] libstdc++-4.6 needs the same common_type fix as libstdc++-4.7. Other than that, Clang can now cope with its eccentricities in C++11 mode. llvm-svn: 165265 --- clang/www/cxx_status.html | 3 ++- clang/www/libstdc++4.6-clang11.patch | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 clang/www/libstdc++4.6-clang11.patch diff --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html index 8e143f6..dbf5797 100644 --- a/clang/www/cxx_status.html +++ b/clang/www/cxx_status.html @@ -40,7 +40,8 @@

You can use Clang in C++11 mode either with libc++ or with gcc's libstdc++. -Patches are needed to make libstdc++-4.4 +Patches are needed to make libstdc++-4.4, +libstdc++-4.6, and libstdc++-4.7 work with Clang in C++11 mode.

diff --git a/clang/www/libstdc++4.6-clang11.patch b/clang/www/libstdc++4.6-clang11.patch new file mode 100644 index 0000000..cc2cb14 --- /dev/null +++ b/clang/www/libstdc++4.6-clang11.patch @@ -0,0 +1,11 @@ +--- type_traits.orig 2012-10-04 15:20:43.452992946 -0700 ++++ type_traits 2012-10-04 15:21:32.423657167 -0700 +@@ -1110,7 +1110,7 @@ + + template + struct common_type<_Tp, _Up> +- { typedef decltype(true ? declval<_Tp>() : declval<_Up>()) type; }; ++ { typedef typename decay() : declval<_Up>())>::type type; }; + + template + struct common_type<_Tp, _Up, _Vp...> -- 2.7.4