[clang-cl] Ignore /Wv and /Wv:17 flags
[llvm-project.git] / clang / test / CodeGenObjC / related-result-type.m
blobfea31bf876f29fb70cc1081558996109f39c1938
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   // CHECK: bitcast i8*
18   NSString *str1 = [[[NSString alloc] init] retain];
21 // CHECK-LABEL: define {{.*}}void @test2()
22 void test2(void) {
23   // CHECK: {{call.*@objc_msgSend}}
24   // CHECK: {{call.*@objc_msgSend}}
25   // CHECK: {{call.*@objc_msgSend}}
26   // CHECK: bitcast i8*
27   NSString *str1 = NSString.alloc.init.retain;
30 @interface Test2 : NSString
31 - (id)init;
32 @end
34 @implementation Test2
35 // CHECK: define internal {{.*}}i8* @"\01-[Test2 init]"
36 - (id)init {
37   // CHECK: {{call.*@objc_msgSendSuper}}
38   // CHECK-NEXT: bitcast i8*
39   return [super init];
41 @end
43 @interface Test3 : NSString
44 - (id)init;
45 @end
47 @implementation Test3
48 // CHECK: define internal {{.*}}i8* @"\01-[Test3 init]"
49 - (id)init {
50   // CHECK: {{call.*@objc_msgSendSuper}}
51   // CHECK-NEXT: bitcast i8*
52   return [super init];
54 @end