| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s |
| // rdar://15610943 |
| |
| struct _GLKMatrix4 |
| { |
| float m[16]; |
| }; |
| typedef struct _GLKMatrix4 GLKMatrix4; |
| |
| @interface NSObject @end |
| |
| @interface MyProgram |
| - (void)setTransform:(float[16])transform; |
| @end |
| |
| @interface ViewController |
| @property (nonatomic, assign) GLKMatrix4 transform; |
| @end |
| |
| @implementation ViewController |
| - (void)viewDidLoad { |
| MyProgram *program; |
| program.transform = self.transform.m; |
| } |
| @end |
| |
| // CHECK: [[M:%.*]] = getelementptr inbounds %struct._GLKMatrix4, %struct._GLKMatrix4* [[TMP:%.*]], i32 0, i32 0 |
| // CHECK: [[ARRAYDECAY:%.*]] = getelementptr inbounds [16 x float], [16 x float]* [[M]], i32 0, i32 0 |
| // CHECK: [[SIX:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES |
| // CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, float*)*)(i8* [[SEVEN:%.*]], i8* [[SIX]], float* [[ARRAYDECAY]]) |