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