Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenObjC / optimized-setter.m
blob1d0693bf469d422ef43ae8146b65f23764f2285f
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
5 @interface I
6 // void objc_setProperty_nonatomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
7 // objc_setProperty(..., NO, NO) 
8 @property (nonatomic, retain) id nonatomicProperty;
10 // void objc_setProperty_nonatomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);
11 // objc_setProperty(..., NO, YES)
12 @property (nonatomic, copy) id nonatomicPropertyCopy;
14 // void objc_setProperty_atomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
15 // objc_setProperty(..., YES, NO)
16 @property (retain) id atomicProperty;
18 // void objc_setProperty_atomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);
19 // objc_setProperty(..., YES, YES)
20 @property (copy) id atomicPropertyCopy;
21 @end
23 @implementation I
24 @synthesize nonatomicProperty;
25 @synthesize nonatomicPropertyCopy;
26 @synthesize atomicProperty;
27 @synthesize atomicPropertyCopy;
28 @end
30 // CHECK: call void @objc_setProperty_nonatomic
31 // CHECK: call void @objc_setProperty_nonatomic_copy
32 // CHECK: call void @objc_setProperty_atomic
33 // CHECK: call void @objc_setProperty_atomic_copy