blob: e56303c7fef13246e5e1ffb3cc538ad54351c6a5 [file] [log] [blame]
Erik Pilkingtonec389b02019-02-14 19:58:37 +00001// RUN: %clang_cc1 %s -fobjc-runtime=macosx-10.14.4 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=OPTIMIZED --check-prefix=EITHER
2// RUN: %clang_cc1 %s -fobjc-runtime=macosx-10.14.3 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=NOT_OPTIMIZED --check-prefix=EITHER
3// RUN: %clang_cc1 %s -fobjc-runtime=ios-12.2 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=OPTIMIZED --check-prefix=EITHER
4// RUN: %clang_cc1 %s -fobjc-runtime=ios-12.1 -emit-llvm -O0 -o - | FileCheck %s --check-prefix=NOT_OPTIMIZED --check-prefix=EITHER
5
6@interface X
7+(X *)alloc;
8-(X *)init;
9@end
10
11void f() {
12 [[X alloc] init];
13 // OPTIMIZED: call i8* @objc_alloc_init(
14 // NOT_OPTIMIZED: call i8* @objc_alloc(
15}
16
17@interface Y : X
18+(void)meth;
19@end
20
21@implementation Y
22+(void)meth {
23 [[self alloc] init];
24 // EITHER-NOT: call i8* @objc_alloc
25 // EITHER: call {{.*}} @objc_msgSend
26 // EITHER: call {{.*}} @objc_msgSend
27}
28@end