]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/Misc/ast-print-objectivec.m
Vendor import of clang trunk r338150:
[FreeBSD/FreeBSD.git] / test / Misc / ast-print-objectivec.m
1 // RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
2
3 @interface NSObject @end
4
5 @protocol P
6 - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2)));
7 @end
8
9 @interface I : NSObject <P>
10 - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2)));
11 @end
12
13 @interface I(CAT)
14 - (void)MethCAT __attribute__((availability(macosx,introduced=10_1_0,deprecated=10_2)));
15 @end
16
17 @implementation I
18 - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {}
19 - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {}
20
21 - (void)methodWithArg:(int)x andAnotherOne:(int)y { }
22 @end
23
24 // CHECK: @protocol P
25 // CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
26 // CHECK: @end
27
28 // CHECK: @interface I : NSObject<P> 
29 // CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
30 // CHECK: @end
31
32 // CHECK: @interface I(CAT)
33 // CHECK: - (void)MethCAT __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
34 // CHECK: @end
35
36 // CHECK: @implementation I
37 // CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
38 // CHECK: }
39
40 // CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
41 // CHECK: }
42
43 // CHECK: - (void)methodWithArg:(int)x andAnotherOne:(int)y {
44 // CHECK: }
45
46 // CHECK: @end
47
48 @class C1;
49 struct __attribute__((objc_bridge_related(C1,,))) S1;
50
51 // CHECK: @class C1;
52 // CHECK: struct __attribute__((objc_bridge_related(C1, , ))) S1;
53
54 @interface ImplicitPropertyWithSetterOnly
55
56 - (void)setX:(int)x;
57
58 @end
59
60 void printImplicitPropertyWithSetterOnly(ImplicitPropertyWithSetterOnly *x) {
61   x.x = 313; // CHECK: x.x = 313;
62 }