libstdc++-4.6 needs the same common_type fix as libstdc++-4.7. Other than that,
authorRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 4 Oct 2012 22:23:07 +0000 (22:23 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 4 Oct 2012 22:23:07 +0000 (22:23 +0000)
Clang can now cope with its eccentricities in C++11 mode.

llvm-svn: 165265

clang/www/cxx_status.html
clang/www/libstdc++4.6-clang11.patch [new file with mode: 0644]

index 8e143f6..dbf5797 100644 (file)
@@ -40,7 +40,8 @@
 
 <p>You can use Clang in C++11 mode either
 with <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++.
-Patches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a>
+Patches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a>,
+<a href="libstdc++4.6-clang11.patch">libstdc++-4.6</a>,
 and <a href="libstdc++4.7-clang11.patch">libstdc++-4.7</a> work with Clang in
 C++11 mode.</p>
 
diff --git a/clang/www/libstdc++4.6-clang11.patch b/clang/www/libstdc++4.6-clang11.patch
new file mode 100644 (file)
index 0000000..cc2cb14
--- /dev/null
@@ -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<typename _Tp, typename _Up>
+     struct common_type<_Tp, _Up>
+-    { typedef decltype(true ? declval<_Tp>() : declval<_Up>()) type; };
++    { typedef typename decay<decltype(true ? declval<_Tp>() : declval<_Up>())>::type type; };
+   template<typename _Tp, typename _Up, typename... _Vp>
+     struct common_type<_Tp, _Up, _Vp...>