1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s 2// rdar://8427922 3 4struct Vector3D 5{ 6 float x, y, z; 7 Vector3D(); 8 Vector3D(const Vector3D &inVector); 9 Vector3D(float initX, float initY, float initZ); 10 Vector3D &operator=(const Vector3D & rhs); 11}; 12 13@interface Object3D 14{ 15 Vector3D position; 16 Vector3D length; 17} 18@property (assign) Vector3D position; 19- (Vector3D) length; 20- (void) setLength: (Vector3D)arg; 21@end 22 23int main () 24{ 25 Object3D *myObject; 26 Vector3D V3D(1.0f, 1.0f, 1.0f); 27// CHECK: call void @_ZN8Vector3DC1ERKS_ 28 myObject.position = V3D; 29 30// CHECK: call void @_ZN8Vector3DC1ERKS_ 31 myObject.length = V3D; 32 33 return 0; 34} 35 36// rdar: // 8437253 37extern "C" void exit(...); 38 39struct CGPoint { 40 float x; 41 float y; 42}; 43typedef struct CGPoint CGPoint; 44 45extern "C" const CGPoint CGPointZero; 46 47bool operator==(const CGPoint& a, const CGPoint& b); 48 49@interface TIconViewSettings 50@property (assign, nonatomic) CGPoint gridOffset; 51@end 52 53@implementation TIconViewSettings 54- (CGPoint) gridOffset 55{ 56 return CGPointZero; 57} 58 59- (void) foo 60{ 61 if ((self.gridOffset) == CGPointZero) 62 exit(1); 63 64 if (self.gridOffset == CGPointZero) 65 exit(1); 66} 67@end 68 69