xref: /llvm-project/clang/test/CodeGenObjC/optimized-setter-ios-device.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=ios-6.0.0 -triple thumbv7-apple-ios6.0.0 -o - | FileCheck %s
2
3@interface I
4// void objc_setProperty_nonatomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
5// objc_setProperty(..., NO, NO)
6@property (nonatomic, retain) id nonatomicProperty;
7
8// void objc_setProperty_nonatomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);
9// objc_setProperty(..., NO, YES)
10@property (nonatomic, copy) id nonatomicPropertyCopy;
11
12// void objc_setProperty_atomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
13// objc_setProperty(..., YES, NO)
14@property (retain) id atomicProperty;
15
16// void objc_setProperty_atomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);
17// objc_setProperty(..., YES, YES)
18@property (copy) id atomicPropertyCopy;
19@end
20
21@implementation I
22@synthesize nonatomicProperty;
23@synthesize nonatomicPropertyCopy;
24@synthesize atomicProperty;
25@synthesize atomicPropertyCopy;
26@end
27
28// CHECK: call void @objc_setProperty_nonatomic
29// CHECK: call void @objc_setProperty_nonatomic_copy
30// CHECK: call void @objc_setProperty_atomic
31// CHECK: call void @objc_setProperty_atomic_copy
32
33