diff options
-rw-r--r-- | libcxx/include/type_traits | 5 | ||||
-rw-r--r-- | libcxx/test/libcxx/type_traits/is_pointer_objc.arc.pass.mm | 56 |
2 files changed, 0 insertions, 61 deletions
diff --git a/libcxx/include/type_traits b/libcxx/include/type_traits index a42299f914f..2b79490941c 100644 --- a/libcxx/include/type_traits +++ b/libcxx/include/type_traits @@ -784,11 +784,6 @@ _LIBCPP_INLINE_VAR _LIBCPP_CONSTEXPR bool is_array_v template <class _Tp> struct __libcpp_is_pointer : public false_type {}; template <class _Tp> struct __libcpp_is_pointer<_Tp*> : public true_type {}; -#if defined(_LIBCPP_HAS_OBJC_ARC) -template <class _Tp> struct __libcpp_is_pointer<_Tp* __weak> : public true_type {}; -template <class _Tp> struct __libcpp_is_pointer<_Tp* __autoreleasing> : public true_type {}; -template <class _Tp> struct __libcpp_is_pointer<_Tp* __unsafe_unretained> : public true_type {}; -#endif template <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_pointer : public __libcpp_is_pointer<typename remove_cv<_Tp>::type> {}; diff --git a/libcxx/test/libcxx/type_traits/is_pointer_objc.arc.pass.mm b/libcxx/test/libcxx/type_traits/is_pointer_objc.arc.pass.mm deleted file mode 100644 index 8f0e52bfbef..00000000000 --- a/libcxx/test/libcxx/type_traits/is_pointer_objc.arc.pass.mm +++ /dev/null @@ -1,56 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// UNSUPPORTED: c++98, c++03 - -// <type_traits> - -// std::is_pointer - -// Test that we correctly handle Objective-C++ ARC qualifiers on pointers. - -#include <type_traits> - - -template <typename T> -void test() { - 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, ""); - - 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, ""); - - 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, ""); - - 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, ""); -} - -@class Foo; - -int main(int, char**) { - test<id>(); - test<id const>(); - test<id volatile>(); - test<id const volatile>(); - test<Foo*>(); - test<Foo const*>(); - test<Foo volatile*>(); - test<Foo const volatile*>(); - - return 0; -} |