1// RUN: %clang_cc1 -triple x86_64-apple-darwin10  -emit-llvm -o - %s | FileCheck %s
2// rdar://15610943
3
4struct _GLKMatrix4
5{
6    float m[16];
7};
8typedef 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]])
31