xref: /aosp_15_r20/external/clang/test/CodeGenObjC/encode-test-6.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o %t %s
2*67e74705SXin Li// RUN: FileCheck < %t %s
3*67e74705SXin Li// rdar://11777609
4*67e74705SXin Li
5*67e74705SXin Litypedef struct {} Z;
6*67e74705SXin Li
7*67e74705SXin Li@interface A
8*67e74705SXin Li-(void)bar:(Z)a;
9*67e74705SXin Li-(void)foo:(Z)a : (char*)b : (Z)c : (double) d;
10*67e74705SXin Li@end
11*67e74705SXin Li
12*67e74705SXin Li@implementation A
13*67e74705SXin Li-(void)bar:(Z)a {}
14*67e74705SXin Li-(void)foo:(Z)a: (char*)b : (Z)c : (double) d {}
15*67e74705SXin Li@end
16*67e74705SXin Li
17*67e74705SXin Li// CHECK: private global [14 x i8] c"v16@0:8{?=}16
18*67e74705SXin Li// CHECK: private global [26 x i8] c"v32@0:8{?=}16*16{?=}24d24
19*67e74705SXin Li
20*67e74705SXin Li
21*67e74705SXin Li// rdar://13190095
22*67e74705SXin Li@interface NSObject @end
23*67e74705SXin Li
24*67e74705SXin Li@class BABugExample;
25*67e74705SXin Litypedef BABugExample BABugExampleRedefinition;
26*67e74705SXin Li
27*67e74705SXin Li@interface BABugExample : NSObject {
28*67e74705SXin Li    BABugExampleRedefinition *_property; // .asciz   "^{BABugExample=^{BABugExample}}"
29*67e74705SXin Li}
30*67e74705SXin Li@property (copy) BABugExampleRedefinition *property;
31*67e74705SXin Li@end
32*67e74705SXin Li
33*67e74705SXin Li@implementation BABugExample
34*67e74705SXin Li@synthesize property = _property;
35*67e74705SXin Li@end
36*67e74705SXin Li
37*67e74705SXin Li// CHECK: private global [24 x i8] c"^{BABugExample=@}16
38*67e74705SXin Li
39*67e74705SXin Li// rdar://14408244
40*67e74705SXin Li@class SCNCamera;
41*67e74705SXin Litypedef SCNCamera C3DCamera;
42*67e74705SXin Litypedef struct
43*67e74705SXin Li{
44*67e74705SXin Li    C3DCamera *presentationInstance;
45*67e74705SXin Li}  C3DCameraStorage;
46*67e74705SXin Li
47*67e74705SXin Li@interface SCNCamera
48*67e74705SXin Li@end
49*67e74705SXin Li
50*67e74705SXin Li@implementation SCNCamera
51*67e74705SXin Li{
52*67e74705SXin Li    C3DCameraStorage _storage;
53*67e74705SXin Li}
54*67e74705SXin Li@end
55*67e74705SXin Li// CHECK: private global [39 x i8] c"{?=\22presentationInstance\22^{SCNCamera}}\00"
56*67e74705SXin Li
57*67e74705SXin Li// rdar://16655340
58*67e74705SXin Liint i;
59*67e74705SXin Litypeof(@encode(typeof(i))) e = @encode(typeof(i));
60*67e74705SXin Liconst char * Test()
61*67e74705SXin Li{
62*67e74705SXin Li    return e;
63*67e74705SXin Li}
64*67e74705SXin Li// CHECK: @e = global [2 x i8] c"i\00", align 1
65*67e74705SXin Li// CHECK: define i8* @Test()
66*67e74705SXin Li// CHECK: ret i8* getelementptr inbounds ([2 x i8], [2 x i8]* @e, i32 0, i32 0)
67