Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenObjC / encode-test-6.m
blob261eb7fb3368b2dfe84716c69a377a21e9c88479
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o %t %s
2 // RUN: FileCheck < %t %s
4 typedef struct {} Z;
6 @interface A
7 -(void)bar:(Z)a;
8 -(void)foo:(Z)a : (char*)b : (Z)c : (double) d;
9 @end
11 @implementation A
12 -(void)bar:(Z)a {}
13 -(void)foo:(Z)a: (char*)b : (Z)c : (double) d {}
14 @end
16 // CHECK: private unnamed_addr constant [14 x i8] c"v16@0:8{?=}16
17 // CHECK: private unnamed_addr constant [26 x i8] c"v32@0:8{?=}16*16{?=}24d24
19 @interface NSObject @end
21 @class BABugExample;
22 typedef BABugExample BABugExampleRedefinition;
24 @interface BABugExample : NSObject {
25     BABugExampleRedefinition *_property; // .asciz   "^{BABugExample=^{BABugExample}}"
27 @property (copy) BABugExampleRedefinition *property;
28 @end
30 @implementation BABugExample
31 @synthesize property = _property;
32 @end
34 // CHECK: private unnamed_addr constant [8 x i8] c"@16
36 @class SCNCamera;
37 typedef SCNCamera C3DCamera;
38 typedef struct
40     C3DCamera *presentationInstance;
41 }  C3DCameraStorage;
43 @interface SCNCamera
44 @end
46 @implementation SCNCamera
48     C3DCameraStorage _storage;
50 @end
51 // CHECK: private unnamed_addr constant [39 x i8] c"{?=\22presentationInstance\22@\22SCNCamera\22}\00"
53 int i;
54 typeof(@encode(typeof(i))) e = @encode(typeof(i));
55 const char * Test(void)
57     return e;
59 // CHECK: @e ={{.*}} global [2 x i8] c"i\00", align 1
60 // CHECK: define{{.*}} ptr @Test()
61 // CHECK: ret ptr @e