diff options
Diffstat (limited to 'clang/test/CodeGenObjC/property-atomic-bool.m')
-rw-r--r-- | clang/test/CodeGenObjC/property-atomic-bool.m | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/property-atomic-bool.m b/clang/test/CodeGenObjC/property-atomic-bool.m new file mode 100644 index 00000000000..77da129f6c0 --- /dev/null +++ b/clang/test/CodeGenObjC/property-atomic-bool.m @@ -0,0 +1,34 @@ +// RUN: %clang_cc1 -triple x86_64-apple-macosx10 -emit-llvm -x objective-c %s -o - | FileCheck %s + +// CHECK: define internal zeroext i1 @"\01-[A0 p]"( +// CHECK: %[[ATOMIC_LOAD:.*]] = load atomic i8, i8* %{{.*}} seq_cst +// CHECK: %[[TOBOOL:.*]] = trunc i8 %[[ATOMIC_LOAD]] to i1 +// CHECK: ret i1 %[[TOBOOL]] + +// CHECK: define internal void @"\01-[A0 setP:]"({{.*}} i1 zeroext {{.*}}) +// CHECK: store atomic i8 %{{.*}}, i8* %{{.*}} seq_cst +// CHECK: ret void + +// CHECK: define internal zeroext i1 @"\01-[A1 p]"( +// CHECK: %[[ATOMIC_LOAD:.*]] = load atomic i8, i8* %{{.*}} unordered +// CHECK: %[[TOBOOL:.*]] = trunc i8 %load to i1 +// CHECK: ret i1 %[[TOBOOL]] + +// CHECK: define internal void @"\01-[A1 setP:]"({{.*}} i1 zeroext %p) +// CHECK: store atomic i8 %{{.*}}, i8* %{{.*}} unordered +// CHECK: ret void + +@interface A0 +@property(nonatomic) _Atomic(_Bool) p; +@end +@implementation A0 +@end + +@interface A1 { + _Atomic(_Bool) p; +} +@property _Atomic(_Bool) p; +@end +@implementation A1 +@synthesize p; +@end |