Home | History | Annotate | Download | only in CodeGenObjC
      1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10  -fobjc-gc -emit-llvm -o - %s | FileCheck -check-prefix LP64 %s
      2 // RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10  -fobjc-gc -emit-llvm -o - %s | FileCheck -check-prefix LP64 %s
      3 // rdar: // 7849824
      4 
      5 struct s {
      6   double a, b, c, d;  
      7 };
      8 
      9 struct s1 {
     10     int i;
     11     id j;
     12     id k;
     13 };
     14 
     15 @interface A 
     16 @property (readwrite) double x;
     17 @property (readwrite) struct s y;
     18 @property (nonatomic, readwrite) struct s1 z;
     19 @end
     20 
     21 @implementation A
     22 @synthesize x;
     23 @synthesize y;
     24 @synthesize z;
     25 @end
     26 // CHECK-LP64: define internal double @"\01-[A x]"(
     27 // CHECK-LP64: load atomic i64* {{%.*}} unordered, align 8
     28 
     29 // CHECK-LP64: define internal void @"\01-[A setX:]"(
     30 // CHECK-LP64: store atomic i64 {{%.*}}, i64* {{%.*}} unordered, align 8
     31 
     32 // CHECK-LP64: define internal void @"\01-[A y]"(
     33 // CHECK-LP64: call void @objc_copyStruct(i8* {{%.*}}, i8* {{%.*}}, i64 32, i1 zeroext true, i1 zeroext false)
     34 
     35 // CHECK-LP64: define internal void @"\01-[A setY:]"(
     36 // CHECK-LP64: call void @objc_copyStruct(i8* {{%.*}}, i8* {{%.*}}, i64 32, i1 zeroext true, i1 zeroext false)
     37 
     38 // CHECK-LP64: define internal void @"\01-[A z]"(
     39 // CHECK-LP64: call i8* @objc_memmove_collectable(
     40 
     41 // CHECK-LP64: define internal void @"\01-[A setZ:]"(
     42 // CHECK-LP64: call i8* @objc_memmove_collectable(
     43