Home | History | Annotate | Download | only in CodeGenObjC
      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