summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2013-08-14 21:28:31 +0000
committerHoward Hinnant <hhinnant@apple.com>2013-08-14 21:28:31 +0000
commit113f13d2a5f952837f6308df132266febc6367af (patch)
tree60f4940b0e73125b3d4f71d3b3f4ef04657cc829
parent9d31d6f3297cee27db193d9f567b5f611e87128e (diff)
downloadbcm5719-llvm-113f13d2a5f952837f6308df132266febc6367af.tar.gz
bcm5719-llvm-113f13d2a5f952837f6308df132266febc6367af.zip
Relax complete-type check for functions and function pointers to allow void return type. This bug was exposed by Eli Friedman's commit to clang r188324. Anywhere this version of clang ships, this libc++ fix must follow. However this fix is compatible with previous clangs, and so this libc++ doesn't need to wait for this clang.
llvm-svn: 188413
-rw-r--r--libcxx/include/type_traits10
1 files changed, 10 insertions, 0 deletions
diff --git a/libcxx/include/type_traits b/libcxx/include/type_traits
index 511a05288f2..73ece1ea2fa 100644
--- a/libcxx/include/type_traits
+++ b/libcxx/include/type_traits
@@ -2928,12 +2928,22 @@ struct __check_complete<_Rp (*)(_Param...)>
{
};
+template <class ..._Param>
+struct __check_complete<void (*)(_Param...)>
+{
+};
+
template <class _Rp, class ..._Param>
struct __check_complete<_Rp (_Param...)>
: private __check_complete<_Rp>
{
};
+template <class ..._Param>
+struct __check_complete<void (_Param...)>
+{
+};
+
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...)>
: private __check_complete<_Class>
OpenPOWER on IntegriCloud