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]], i64 0, i64 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]]) |
31 | |