diff --git a/libcxx/include/type_traits b/libcxx/include/type_traits
index 15e9df2..029bb4a 100644
--- a/libcxx/include/type_traits
+++ b/libcxx/include/type_traits
@@ -908,18 +908,6 @@
 template <class _Tp> struct __libcpp_remove_objc_qualifiers<_Tp __unsafe_unretained> { typedef _Tp type; };
 #endif
 
-#if __has_keyword(__is_pointer)
-
-template<class _Tp>
-struct _LIBCPP_TEMPLATE_VIS is_pointer : _BoolConstant<__is_pointer(_Tp)> { };
-
-#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)
-template <class _Tp>
-_LIBCPP_INLINE_VAR _LIBCPP_CONSTEXPR bool is_pointer_v = __is_pointer(_Tp);
-#endif
-
-#else // __has_keyword(__is_pointer)
-
 template <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_pointer
     : public __libcpp_is_pointer<typename __libcpp_remove_objc_qualifiers<typename remove_cv<_Tp>::type>::type> {};
 
@@ -929,8 +917,6 @@
     = is_pointer<_Tp>::value;
 #endif
 
-#endif // __has_keyword(__is_pointer)
-
 // is_reference
 
 #if __has_keyword(__is_lvalue_reference) && \
diff --git a/libcxx/test/libcxx/type_traits/is_pointer.arc.pass.mm b/libcxx/test/libcxx/type_traits/is_pointer.arc.pass.mm
index 1688699..e8296b3 100644
--- a/libcxx/test/libcxx/type_traits/is_pointer.arc.pass.mm
+++ b/libcxx/test/libcxx/type_traits/is_pointer.arc.pass.mm
@@ -17,31 +17,40 @@
 // Test that we correctly handle Objective-C++ ARC qualifiers on pointers.
 
 #include <type_traits>
+#include "test_macros.h"
 
 
 template <typename T>
-void test_is_pointer() {
+void assert_is_pointer() {
     static_assert(std::is_pointer<T>::value, "");
+#if TEST_STD_VER > 14
+    static_assert(std::is_pointer_v<T>, "");
+#endif
+}
 
-    static_assert(std::is_pointer<T __weak>::value, "");
-    static_assert(std::is_pointer<T __strong>::value, "");
-    static_assert(std::is_pointer<T __autoreleasing>::value, "");
-    static_assert(std::is_pointer<T __unsafe_unretained>::value, "");
+template <typename T>
+void test_is_pointer() {
+    assert_is_pointer<T>();
 
-    static_assert(std::is_pointer<T __weak const>::value, "");
-    static_assert(std::is_pointer<T __strong const>::value, "");
-    static_assert(std::is_pointer<T __autoreleasing const>::value, "");
-    static_assert(std::is_pointer<T __unsafe_unretained const>::value, "");
+    assert_is_pointer<T __weak>();
+    assert_is_pointer<T __strong>();
+    assert_is_pointer<T __autoreleasing>();
+    assert_is_pointer<T __unsafe_unretained>();
 
-    static_assert(std::is_pointer<T __weak volatile>::value, "");
-    static_assert(std::is_pointer<T __strong volatile>::value, "");
-    static_assert(std::is_pointer<T __autoreleasing volatile>::value, "");
-    static_assert(std::is_pointer<T __unsafe_unretained volatile>::value, "");
+    assert_is_pointer<T __weak const>();
+    assert_is_pointer<T __strong const>();
+    assert_is_pointer<T __autoreleasing const>();
+    assert_is_pointer<T __unsafe_unretained const>();
 
-    static_assert(std::is_pointer<T __weak const volatile>::value, "");
-    static_assert(std::is_pointer<T __strong const volatile>::value, "");
-    static_assert(std::is_pointer<T __autoreleasing const volatile>::value, "");
-    static_assert(std::is_pointer<T __unsafe_unretained const volatile>::value, "");
+    assert_is_pointer<T __weak volatile>();
+    assert_is_pointer<T __strong volatile>();
+    assert_is_pointer<T __autoreleasing volatile>();
+    assert_is_pointer<T __unsafe_unretained volatile>();
+
+    assert_is_pointer<T __weak const volatile>();
+    assert_is_pointer<T __strong const volatile>();
+    assert_is_pointer<T __autoreleasing const volatile>();
+    assert_is_pointer<T __unsafe_unretained const volatile>();
 }
 
 @class Foo;
diff --git a/libcxx/test/lit.cfg b/libcxx/test/lit.cfg
index ed5aa29..8ee592b 100644
--- a/libcxx/test/lit.cfg
+++ b/libcxx/test/lit.cfg
@@ -15,7 +15,7 @@
 config.name = 'libc++'
 
 # suffixes: A list of file extensions to treat as test files.
-config.suffixes = ['.pass.cpp', '.fail.cpp', '.sh.cpp']
+config.suffixes = ['.pass.cpp', '.fail.cpp', '.sh.cpp', '.pass.mm']
 
 # test_source_root: The root path where tests are located.
 config.test_source_root = os.path.dirname(__file__)
