summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC/objc-alloc-init.m
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGenObjC/objc-alloc-init.m')
-rw-r--r--clang/test/CodeGenObjC/objc-alloc-init.m28
1 files changed, 28 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/objc-alloc-init.m b/clang/test/CodeGenObjC/objc-alloc-init.m
new file mode 100644
index 00000000000..e56303c7fef
--- /dev/null
+++ b/clang/test/CodeGenObjC/objc-alloc-init.m
@@ -0,0 +1,28 @@
+// RUN: %clang_cc1 %s -fobjc-runtime=macosx-10.14.4 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=OPTIMIZED --check-prefix=EITHER
+// RUN: %clang_cc1 %s -fobjc-runtime=macosx-10.14.3 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=NOT_OPTIMIZED --check-prefix=EITHER
+// RUN: %clang_cc1 %s -fobjc-runtime=ios-12.2 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=OPTIMIZED --check-prefix=EITHER
+// RUN: %clang_cc1 %s -fobjc-runtime=ios-12.1 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=NOT_OPTIMIZED --check-prefix=EITHER
+
+@interface X
++(X *)alloc;
+-(X *)init;
+@end
+
+void f() {
+ [[X alloc] init];
+ // OPTIMIZED: call i8* @objc_alloc_init(
+ // NOT_OPTIMIZED: call i8* @objc_alloc(
+}
+
+@interface Y : X
++(void)meth;
+@end
+
+@implementation Y
++(void)meth {
+ [[self alloc] init];
+ // EITHER-NOT: call i8* @objc_alloc
+ // EITHER: call {{.*}} @objc_msgSend
+ // EITHER: call {{.*}} @objc_msgSend
+}
+@end
OpenPOWER on IntegriCloud