]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/SemaObjC/property-atomic-bool.m
Vendor import of clang trunk r338536:
[FreeBSD/FreeBSD.git] / test / SemaObjC / property-atomic-bool.m
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