diff --git a/clang/test/SemaObjC/type-traits-is-pointer.mm b/clang/test/SemaObjC/type-traits-is-pointer.mm deleted file mode 100644 --- a/clang/test/SemaObjC/type-traits-is-pointer.mm +++ /dev/null @@ -1,52 +0,0 @@ -// RUN: %clang -fobjc-arc %s - -template -void assert_is_pointer() { - static_assert(__is_pointer(T), ""); -} - -template -void test_is_pointer() { - assert_is_pointer(); - - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); - assert_is_pointer(); -} - -@class Foo; - -int main(int, char**) { - test_is_pointer(); - test_is_pointer(); - test_is_pointer(); - test_is_pointer(); - - test_is_pointer(); - test_is_pointer(); - test_is_pointer(); - test_is_pointer(); - - test_is_pointer(); - test_is_pointer(); - test_is_pointer(); - test_is_pointer(); - - return 0; -} diff --git a/clang/test/SemaObjCXX/type-traits-is-pointer.mm b/clang/test/SemaObjCXX/type-traits-is-pointer.mm new file mode 100644 --- /dev/null +++ b/clang/test/SemaObjCXX/type-traits-is-pointer.mm @@ -0,0 +1,48 @@ +// RUN: %clang_cc1 -fsyntax-only -fobjc-arc -fobjc-runtime-has-weak -verify %s +// expected-no-diagnostics + +template +void test_is_pointer() { + static_assert(__is_pointer(T), ""); + + static_assert(__is_pointer(T __weak), ""); + static_assert(__is_pointer(T __strong), ""); + static_assert(__is_pointer(T __autoreleasing), ""); + static_assert(__is_pointer(T __unsafe_unretained), ""); + + static_assert(__is_pointer(T __weak const), ""); + static_assert(__is_pointer(T __strong const), ""); + static_assert(__is_pointer(T __autoreleasing const), ""); + static_assert(__is_pointer(T __unsafe_unretained const), ""); + + static_assert(__is_pointer(T __weak volatile), ""); + static_assert(__is_pointer(T __strong volatile), ""); + static_assert(__is_pointer(T __autoreleasing volatile), ""); + static_assert(__is_pointer(T __unsafe_unretained volatile), ""); + + static_assert(__is_pointer(T __weak const volatile), ""); + static_assert(__is_pointer(T __strong const volatile), ""); + static_assert(__is_pointer(T __autoreleasing const volatile), ""); + static_assert(__is_pointer(T __unsafe_unretained const volatile), ""); +} + +@class Foo; + +int main(int, char**) { + test_is_pointer(); + test_is_pointer(); + test_is_pointer(); + test_is_pointer(); + + test_is_pointer(); + test_is_pointer(); + test_is_pointer(); + test_is_pointer(); + + test_is_pointer(); + test_is_pointer(); + test_is_pointer(); + test_is_pointer(); + + return 0; +}