1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-macosx10.10 -ast-dump "%s" | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li// CHECK: TypedefDecl {{.*}} referenced AtomicBool '_Atomic(_Bool)' 4*67e74705SXin Li// CHECK: AtomicType {{.*}} '_Atomic(_Bool)' 5*67e74705SXin Li// CHECK: BuiltinType {{.*}} '_Bool' 6*67e74705SXin Li// CHECK: ObjCInterfaceDecl {{.*}} A0 7*67e74705SXin Li// CHECK: ObjCPropertyDecl {{.*}} p '_Atomic(_Bool)' {{.*}} nonatomic 8*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - p '_Bool' 9*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - setP: 'void' 10*67e74705SXin Li// CHECK: ParmVarDecl {{.*}} p '_Bool' 11*67e74705SXin Li// CHECK: ObjCInterfaceDecl {{.*}} A1 12*67e74705SXin Li// CHECK: ObjCPropertyDecl {{.*}} p 'AtomicBool':'_Atomic(_Bool)' {{.*}} nonatomic 13*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - p '_Bool' 14*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - setP: 'void' 15*67e74705SXin Li// CHECK: ParmVarDecl {{.*}} p '_Bool' 16*67e74705SXin Li// CHECK: ObjCInterfaceDecl {{.*}} A2 17*67e74705SXin Li// CHECK: ObjCIvarDecl {{.*}} p '_Atomic(_Bool)' protected 18*67e74705SXin Li// CHECK: ObjCPropertyDecl {{.*}} p '_Atomic(_Bool)' 19*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - p '_Bool' 20*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - setP: 'void' 21*67e74705SXin Li// CHECK: ParmVarDecl {{.*}} p '_Bool' 22*67e74705SXin Li// CHECK: ObjCInterfaceDecl {{.*}} A3 23*67e74705SXin Li// CHECK: ObjCIvarDecl {{.*}} p 'AtomicBool':'_Atomic(_Bool)' protected 24*67e74705SXin Li// CHECK: ObjCPropertyDecl {{.*}} p 'AtomicBool':'_Atomic(_Bool)' 25*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - p '_Bool' 26*67e74705SXin Li// CHECK: ObjCMethodDecl {{.*}} implicit - setP: 'void' 27*67e74705SXin Li// CHECK: ParmVarDecl {{.*}} p '_Bool' 28*67e74705SXin Li 29*67e74705SXin Litypedef _Atomic(_Bool) AtomicBool; 30*67e74705SXin Li 31*67e74705SXin Li@interface A0 32*67e74705SXin Li@property(nonatomic) _Atomic(_Bool) p; 33*67e74705SXin Li@end 34*67e74705SXin Li@implementation A0 35*67e74705SXin Li@end 36*67e74705SXin Li 37*67e74705SXin Li@interface A1 38*67e74705SXin Li@property(nonatomic) AtomicBool p; 39*67e74705SXin Li@end 40*67e74705SXin Li@implementation A1 41*67e74705SXin Li@end 42*67e74705SXin Li 43*67e74705SXin Li@interface A2 { 44*67e74705SXin Li _Atomic(_Bool) p; 45*67e74705SXin Li} 46*67e74705SXin Li@property _Atomic(_Bool) p; 47*67e74705SXin Li@end 48*67e74705SXin Li 49*67e74705SXin Li@implementation A2 50*67e74705SXin Li@synthesize p; 51*67e74705SXin Li@end 52*67e74705SXin Li 53*67e74705SXin Li@interface A3 { 54*67e74705SXin Li AtomicBool p; 55*67e74705SXin Li} 56*67e74705SXin Li@property AtomicBool p; 57*67e74705SXin Li@end 58*67e74705SXin Li 59*67e74705SXin Li@implementation A3 60*67e74705SXin Li@synthesize p; 61*67e74705SXin Li@end 62