// RUN: %clang_cc1 -no-opaque-pointers -fno-inline-functions %s -emit-llvm -O1 -o - -triple=i686-apple-darwin9 -std=c++11 | FileCheck %s
// CHECK-DAG: @PR22043 ={{.*}} local_unnamed_addr global i32 0, align 4
typedef AtomicInt;
AtomicInt PR22043 = ;
// CHECK-DAG: @_ZN7PR180978constant1aE ={{.*}} local_unnamed_addr global { i16, i8 } { i16 1, i8 6 }, align 4
// CHECK-DAG: @_ZN7PR180978constant1bE ={{.*}} local_unnamed_addr global { i16, i8 } { i16 2, i8 6 }, align 4
// CHECK-DAG: @_ZN7PR180978constant1cE ={{.*}} local_unnamed_addr global { i16, i8 } { i16 3, i8 6 }, align 4
// CHECK-DAG: @_ZN7PR180978constant1yE ={{.*}} local_unnamed_addr global { { i16, i8 }, i32 } { { i16, i8 } { i16 4, i8 6 }, i32 5 }, align 4
;
// Storing to atomic values should be atomic
// CHECK: store atomic i32 {{.*}} seq_cst, align 4
void
// Initialising atomic values should not be atomic
// CHECK-NOT: store atomic
:
;
b;
// CHECK-LABEL: define{{.*}} void @_Z11atomic_initR1Ai
void
// CHECK-LABEL: define{{.*}} void @_Z16atomic_init_boolPU7_Atomicbb
void
;
// CHECK-LABEL: define{{.*}} void @_ZN16AtomicBoolMemberC2Eb
// CHECK: zext i1 {{.*}} to i8
// CHECK: store i8
// CHECK-NEXT: ret void
: