blob: 7e0a1d769f6ed6d0d7c8ad53c6ee53945717fe6f [file] [log] [blame]
Daniel Dunbar7a0c0642012-10-15 22:23:53 +00001// 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
David Chisnalld397cfe2012-12-17 18:54:24 +00003// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=gnustep-1.7 -triple x86_64-unknown-freebsd -o - | FileCheck %s
Ted Kremenekebcb57a2012-03-06 20:05:56 +00004// 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