1 // RUN: %clang_cc1 -triple x86_64-apple-macosx10 -emit-llvm -x objective-c %s -o - | FileCheck %s 2 3 // CHECK: define internal zeroext i1 @"\01-[A0 p]"( 4 // CHECK: %[[ATOMIC_LOAD:.*]] = load atomic i8, i8* %{{.*}} seq_cst 5 // CHECK: %[[TOBOOL:.*]] = trunc i8 %[[ATOMIC_LOAD]] to i1 6 // CHECK: ret i1 %[[TOBOOL]] 7 8 // CHECK: define internal void @"\01-[A0 setP:]"({{.*}} i1 zeroext {{.*}}) 9 // CHECK: store atomic i8 %{{.*}}, i8* %{{.*}} seq_cst 10 // CHECK: ret void 11 12 // CHECK: define internal zeroext i1 @"\01-[A1 p]"( 13 // CHECK: %[[ATOMIC_LOAD:.*]] = load atomic i8, i8* %{{.*}} unordered 14 // CHECK: %[[TOBOOL:.*]] = trunc i8 %load to i1 15 // CHECK: ret i1 %[[TOBOOL]] 16 17 // CHECK: define internal void @"\01-[A1 setP:]"({{.*}} i1 zeroext %p) 18 // CHECK: store atomic i8 %{{.*}}, i8* %{{.*}} unordered 19 // CHECK: ret void 20 21 @interface A0 22 @property(nonatomic) _Atomic(_Bool) p; 23 @end 24 @implementation A0 25 @end 26 27 @interface A1 { 28 _Atomic(_Bool) p; 29 } 30 @property _Atomic(_Bool) p; 31 @end 32 @implementation A1 33 @synthesize p; 34 @end 35