1 #define __INTRODUCED_IN(api_level) \ 2 __attribute__((__availability__(android, introduced = api_level))) 3 4 #define __DEPRECATED_IN(api_level) \ 5 __attribute__((__availability__(android, deprecated = api_level))) 6 7 #define __OBSOLETED_IN(api_level) \ 8 __attribute__((__availability__(android, obsoleted = api_level))) 9 10 #define __UNAVAILABLE __attribute__((__availability__(android, unavailable))) 11 12 struct Struct { 13 int ignored_field __INTRODUCED_IN(36) 14 __attribute__((availability(macos, introduced = 35))); 15 int field __attribute__((availability(macos, unavailable))); 16 } __INTRODUCED_IN(35); 17 18 struct IgnoredStruct { 19 int field; 20 } __INTRODUCED_IN(36); 21 22 enum { 23 ALPHABETICALLY_SMALLEST_IGNORED_FIELD __INTRODUCED_IN(36), 24 DEPRECATED __DEPRECATED_IN(35), 25 FIELD, 26 OBSOLETED __OBSOLETED_IN(35), 27 UNAVAILABLE __UNAVAILABLE 28 } __INTRODUCED_IN(35); 29 30 extern "C" { 31 int func(Struct*, IgnoredStruct*) __INTRODUCED_IN(35); 32 int ignored_func() __INTRODUCED_IN(36); 33 int var __INTRODUCED_IN(35) __OBSOLETED_IN(36); 34 int ignored_var __INTRODUCED_IN(36); 35 } 36