| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s |
| // RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-fragile-abi -emit-llvm -o - %s | FileCheck %s |
| // rdar: //8808439 |
| |
| typedef struct { |
| #ifdef __LP64__ |
| unsigned char b[15]; |
| #else |
| unsigned char b[7]; |
| #endif |
| } bools_minus_one; |
| |
| typedef struct { |
| #ifdef __LP64__ |
| unsigned char b[16]; |
| #else |
| unsigned char b[8]; |
| #endif |
| } bools; |
| |
| |
| @interface Foo |
| { |
| #ifndef __LP64__ |
| bools x; |
| bools_minus_one y; |
| #endif |
| } |
| @property(assign) bools bools_p; |
| @property(assign) bools_minus_one bools_minus_one_p; |
| @end |
| |
| @implementation Foo |
| @synthesize bools_p=x; |
| @synthesize bools_minus_one_p=y; |
| @end |
| |
| #ifdef __LP64__ |
| typedef __int128_t dword; |
| #else |
| typedef long long int dword; |
| #endif |
| |
| @interface Test_dwords |
| { |
| #ifndef __LP64__ |
| dword dw; |
| #endif |
| } |
| @property(assign) dword dword_p; |
| @end |
| |
| @implementation Test_dwords |
| @synthesize dword_p=dw; |
| @end |
| |
| |
| @interface Test_floats |
| { |
| float fl; |
| double d; |
| long double ld; |
| } |
| @property(assign) float fl_p; |
| @property(assign) double d_p; |
| @property(assign) long double ld_p; |
| @end |
| |
| @implementation Test_floats |
| @synthesize fl_p = fl; |
| @synthesize d_p = d; |
| @synthesize ld_p = ld; |
| @end |
| |
| // CHECK: call void @objc_copyStruct |
| // CHECK: call void @objc_copyStruct |
| // CHECK: call void @objc_copyStruct |
| // CHECK: call void @objc_copyStruct |
| // CHECK: call void @objc_copyStruct |
| // CHECK: call void @objc_copyStruct |