zoecarver updated this revision to Diff 255361.
zoecarver added a comment.
Fix based on review:
- Use static_assert directly in the test
- Update run command to work on non-objc platforms (e.g. linux)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77519/new/
https://reviews.llvm.org/D77519
Files:
clang/test/SemaObjC/type-traits-is-pointer.mm
clang/test/SemaObjCXX/type-traits-is-pointer.mm
Index: clang/test/SemaObjCXX/type-traits-is-pointer.mm
===================================================================
--- /dev/null
+++ 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 <typename T>
+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<id>();
+ test_is_pointer<id const>();
+ test_is_pointer<id volatile>();
+ test_is_pointer<id const volatile>();
+
+ test_is_pointer<Foo*>();
+ test_is_pointer<Foo const*>();
+ test_is_pointer<Foo volatile*>();
+ test_is_pointer<Foo const volatile*>();
+
+ test_is_pointer<void*>();
+ test_is_pointer<void const*>();
+ test_is_pointer<void volatile*>();
+ test_is_pointer<void const volatile*>();
+
+ return 0;
+}
Index: clang/test/SemaObjC/type-traits-is-pointer.mm
===================================================================
--- clang/test/SemaObjC/type-traits-is-pointer.mm
+++ /dev/null
@@ -1,52 +0,0 @@
-// RUN: %clang -fobjc-arc %s
-
-template <typename T>
-void assert_is_pointer() {
- static_assert(__is_pointer(T), "");
-}
-
-template <typename T>
-void test_is_pointer() {
- assert_is_pointer<T>();
-
- assert_is_pointer<T __weak>();
- assert_is_pointer<T __strong>();
- assert_is_pointer<T __autoreleasing>();
- assert_is_pointer<T __unsafe_unretained>();
-
- 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>();
-
- 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;
-
-int main(int, char**) {
- test_is_pointer<id>();
- test_is_pointer<id const>();
- test_is_pointer<id volatile>();
- test_is_pointer<id const volatile>();
-
- test_is_pointer<Foo*>();
- test_is_pointer<Foo const*>();
- test_is_pointer<Foo volatile*>();
- test_is_pointer<Foo const volatile*>();
-
- test_is_pointer<void*>();
- test_is_pointer<void const*>();
- test_is_pointer<void volatile*>();
- test_is_pointer<void const volatile*>();
-
- return 0;
-}
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits