]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenObjC/property-array-type.m
Vendor import of clang trunk r238337:
[FreeBSD/FreeBSD.git] / test / CodeGenObjC / property-array-type.m
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10  -emit-llvm -o - %s | FileCheck %s
2 // rdar://15610943
3
4 struct _GLKMatrix4
5 {
6     float m[16];
7 };
8 typedef struct _GLKMatrix4 GLKMatrix4;
9
10 @interface NSObject @end
11
12 @interface MyProgram
13 - (void)setTransform:(float[16])transform;
14 @end
15
16 @interface ViewController
17 @property (nonatomic, assign) GLKMatrix4 transform;
18 @end
19
20 @implementation ViewController
21 - (void)viewDidLoad {
22   MyProgram *program;
23   program.transform = self.transform.m;
24 }
25 @end
26
27 // CHECK: [[M:%.*]] = getelementptr inbounds %struct._GLKMatrix4, %struct._GLKMatrix4* [[TMP:%.*]], i32 0, i32 0
28 // CHECK: [[ARRAYDECAY:%.*]] = getelementptr inbounds [16 x float], [16 x float]* [[M]], i32 0, i32 0
29 // CHECK: [[SIX:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES
30 // CHECK:  call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, float*)*)(i8* [[SEVEN:%.*]], i8* [[SIX]], float* [[ARRAYDECAY]])