llvm-project/clang/test/Sema/attr-availability-android.c
Mehdi Amini e0ac46e69d Revert "Remove rdar links; NFC"
This reverts commit d618f1c3b12effd0c2bdb7d02108d3551f389d3d.
This commit wasn't reviewed ahead of time and significant concerns were
raised immediately after it landed. According to our developer policy
this warrants immediate revert of the commit.

https://llvm.org/docs/DeveloperPolicy.html#patch-reversion-policy

Differential Revision: https://reviews.llvm.org/D155509
2023-07-17 18:08:04 -07:00

39 lines
1.8 KiB
C

// RUN: %clang_cc1 "-triple" "arm-linux-androideabi16" -fsyntax-only -verify %s
// RUN: %clang_cc1 -D WARN_PARTIAL -Wpartial-availability "-triple" "arm-linux-androideabi16" -fsyntax-only -verify %s
void f0(int) __attribute__((availability(android,introduced=14,deprecated=19)));
void f1(int) __attribute__((availability(android,introduced=16)));
void f2(int) __attribute__((availability(android,introduced=14,deprecated=16))); // expected-note {{'f2' has been explicitly marked deprecated here}}
#ifdef WARN_PARTIAL
// expected-note-re@+2 {{'f3' has been marked as being introduced in Android 19 here, but the deployment target is Android 16{{$}}}}
#endif
void f3(int) __attribute__((availability(android,introduced=19)));
void f4(int) __attribute__((availability(android,introduced=9,deprecated=11,obsoleted=16), availability(ios,introduced=2.0,deprecated=3.0))); // expected-note{{explicitly marked unavailable}}
void f5(int) __attribute__((availability(ios,introduced=3.2), availability(android,unavailable))); // expected-note{{'f5' has been explicitly marked unavailable here}}
void test(void) {
f0(0);
f1(0);
f2(0); // expected-warning-re{{'f2' is deprecated: first deprecated in Android 16{{$}}}}
#ifdef WARN_PARTIAL
// expected-warning@+2{{'f3' is only available on Android 19 or newer}} expected-note@+2{{enclose 'f3' in a __builtin_available check to silence this warning}}
#endif
f3(0);
f4(0); // expected-error-re{{'f4' is unavailable: obsoleted in Android 16{{$}}}}
f5(0); // expected-error{{'f5' is unavailable: not available on Android}}
}
// rdar://10535640
enum {
foo __attribute__((availability(android,introduced=8.0,deprecated=9.0)))
};
enum {
bar __attribute__((availability(android,introduced=8.0,deprecated=9.0))) = foo
};
enum __attribute__((availability(android,introduced=8.0,deprecated=9.0))) {
bar1 = foo
};