[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / clang / test / CodeGenObjC / related-result-type.m
blob677ac78cb766547b4c4a05ba88738f4afd73cfb8
1 // RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
3 @interface NSObject
4 + (id)alloc;
5 - (id)init;
6 - (id)retain;
7 @end
9 @interface NSString : NSObject
10 @end
12 // CHECK-LABEL: define {{.*}}void @test1()
13 void test1(void) {
14   // CHECK: {{call.*@objc_msgSend}}
15   // CHECK: {{call.*@objc_msgSend}}
16   // CHECK: {{call.*@objc_msgSend}}
17   NSString *str1 = [[[NSString alloc] init] retain];
20 // CHECK-LABEL: define {{.*}}void @test2()
21 void test2(void) {
22   // CHECK: {{call.*@objc_msgSend}}
23   // CHECK: {{call.*@objc_msgSend}}
24   // CHECK: {{call.*@objc_msgSend}}
25   NSString *str1 = NSString.alloc.init.retain;
28 @interface Test2 : NSString
29 - (id)init;
30 @end
32 @implementation Test2
33 // CHECK: define internal {{.*}}ptr @"\01-[Test2 init]"
34 - (id)init {
35   // CHECK: {{call.*@objc_msgSendSuper}}
36   return [super init];
38 @end
40 @interface Test3 : NSString
41 - (id)init;
42 @end
44 @implementation Test3
45 // CHECK: define internal {{.*}}ptr @"\01-[Test3 init]"
46 - (id)init {
47   // CHECK: {{call.*@objc_msgSendSuper}}
48   return [super init];
50 @end