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]]) 31