xref: /llvm-project/clang/test/Index/availability.c (revision 260e962402973093380843a11a7f9172b666af09)
1d6225d30SDouglas Gregor // Run lines below; this test is line- and column-sensitive.
2d6225d30SDouglas Gregor 
3d6225d30SDouglas Gregor void foo(void) __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,obsoleted=10.7), availability(ios,introduced=3.2,deprecated=4.1)));
4d6225d30SDouglas Gregor 
5dc2973f7SArgyrios Kyrtzidis enum {
6dc2973f7SArgyrios Kyrtzidis   old_enum
7dc2973f7SArgyrios Kyrtzidis } __attribute__((deprecated));
8dc2973f7SArgyrios Kyrtzidis 
9dc2973f7SArgyrios Kyrtzidis enum {
10dc2973f7SArgyrios Kyrtzidis   old_enum_plat
111345ea2aSAlex Lorenz } __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,obsoleted=10.7)));
12dc2973f7SArgyrios Kyrtzidis 
131345ea2aSAlex Lorenz void bar(void) __attribute__((availability(macosx,introduced=10.4))) __attribute__((availability(macosx,obsoleted=10.6))) __attribute__((availability(ios,introduced=3.2))) __attribute__((availability(macosx,deprecated=10.5,message="use foobar")));
140ee5df82SDouglas Gregor 
151345ea2aSAlex Lorenz void bar2(void) __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,obsoleted=10.7))) __attribute__((availability(ios,introduced=3.2,deprecated=10.0))) __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,obsoleted=10.7))) __attribute__((availability(ios,introduced=3.2,deprecated=10.0)));
161345ea2aSAlex Lorenz 
17*260e9624SMichael Wu void foo2(void) __attribute__((availability(swift,unavailable)));
18*260e9624SMichael Wu void foo3(void) __attribute__((availability(swift,deprecated)));
19*260e9624SMichael Wu 
201345ea2aSAlex Lorenz // RUN: c-index-test -test-load-source all %s | FileCheck %s
211345ea2aSAlex Lorenz // CHECK: FunctionDecl=foo:3:6{{.*}}(ios, introduced=3.2, deprecated=4.1) (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7)
221345ea2aSAlex Lorenz // CHECK: EnumConstantDecl=old_enum:6:3 (Definition) (deprecated)
231345ea2aSAlex Lorenz // CHECK: EnumConstantDecl=old_enum_plat:10:3 {{.*}} (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7)
241345ea2aSAlex Lorenz // CHECK: FunctionDecl=bar:13:6{{.*}}(ios, introduced=3.2) (macos, introduced=10.4, deprecated=10.5, obsoleted=10.6, message="use foobar")
251345ea2aSAlex Lorenz // CHECK: FunctionDecl=bar2:15:6{{.*}}(ios, introduced=3.2, deprecated=10.0) (macos, introduced=10.4, deprecated=10.5, obsoleted=10.7)
26*260e9624SMichael Wu // CHECK: FunctionDecl=foo2:17:6{{.*}}(swift, unavailable)
27*260e9624SMichael Wu // CHECK: FunctionDecl=foo3:18:6{{.*}}(swift, deprecated=1)
28