Add a check for arrays of unknown bounds to is_destructible.  This fixes http://llvm.org/bugs/show_bug.cgi?id=16839

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188080 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/type_traits b/include/type_traits
index 99e34d1..b5eb40d 100644
--- a/include/type_traits
+++ b/include/type_traits
@@ -1461,6 +1461,10 @@
 struct is_destructible
     : public __destructible_imp<_Tp> {};
 
+template <class _Tp>
+struct is_destructible<_Tp[]>
+    : public false_type {};
+
 // move
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
diff --git a/test/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp b/test/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp
index cc7f75e..b4432df 100644
--- a/test/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp
+++ b/test/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp
@@ -69,7 +69,9 @@
     test_is_destructible<const int*>();
     test_is_destructible<char[3]>();
     test_is_destructible<bit_zero>();
+    test_is_destructible<int[3]>();
 
+    test_is_not_destructible<int[]>();
     test_is_not_destructible<void>();
     test_is_not_destructible<Abstract>();
 #if __has_feature(cxx_access_control_sfinae)