]> granicus.if.org Git - clang/commitdiff
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165265 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 8e143f6b0058577f7599b1221529ae6e7d42ee48..dbf5797c0501d67e77604ef8a0b8f9e32d908307 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/www/libstdc++4.6-clang11.patch b/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...>