1// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=macosx-10.8 -triple x86_64-apple-macosx10.8.0 -o - | FileCheck %s
2// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=ios-6.0.0  -triple x86_64-apple-ios6.0.0 -o - | FileCheck %s
3// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=gnustep-1.7 -triple x86_64-unknown-freebsd -o - | FileCheck %s
4// rdar://10179974
5
6@interface I
7// void objc_setProperty_nonatomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
8// objc_setProperty(..., NO, NO)
9@property (nonatomic, retain) id nonatomicProperty;
10
11// void objc_setProperty_nonatomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);
12// objc_setProperty(..., NO, YES)
13@property (nonatomic, copy) id nonatomicPropertyCopy;
14
15// void objc_setProperty_atomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
16// objc_setProperty(..., YES, NO)
17@property (retain) id atomicProperty;
18
19// void objc_setProperty_atomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);
20// objc_setProperty(..., YES, YES)
21@property (copy) id atomicPropertyCopy;
22@end
23
24@implementation I
25@synthesize nonatomicProperty;
26@synthesize nonatomicPropertyCopy;
27@synthesize atomicProperty;
28@synthesize atomicPropertyCopy;
29@end
30
31// CHECK: call void @objc_setProperty_nonatomic
32// CHECK: call void @objc_setProperty_nonatomic_copy
33// CHECK: call void @objc_setProperty_atomic
34// CHECK: call void @objc_setProperty_atomic_copy
35
36