[clang] a340a49 - Add Android test case for -Wpartial-availability. Also update Android availability tests to match on the whole string, so we can distinguish between "Android 16" and "Android 16.0.0" at the end of warning messages.
James Farrell via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 17 14:53:00 PST 2021
Author: James Farrell
Date: 2021-11-17T22:45:23Z
New Revision: a340a491b2550b24539adced79ffefd3ec2e13bf
URL: https://github.com/llvm/llvm-project/commit/a340a491b2550b24539adced79ffefd3ec2e13bf
DIFF: https://github.com/llvm/llvm-project/commit/a340a491b2550b24539adced79ffefd3ec2e13bf.diff
LOG: Add Android test case for -Wpartial-availability. Also update Android availability tests to match on the whole string, so we can distinguish between "Android 16" and "Android 16.0.0" at the end of warning messages.
Reviewed By: danalbert, srhines
Differential Revision: https://reviews.llvm.org/D114036
Added:
Modified:
clang/test/Sema/attr-availability-android.c
Removed:
################################################################################
diff --git a/clang/test/Sema/attr-availability-android.c b/clang/test/Sema/attr-availability-android.c
index d4031b3b52923..f38f71fbc7834 100644
--- a/clang/test/Sema/attr-availability-android.c
+++ b/clang/test/Sema/attr-availability-android.c
@@ -1,8 +1,12 @@
// 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 at +2 {{'f3' has been marked as being introduced in Android 19 here, but the deployment target is Android 16.0.0{{$}}}}
+#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}}
@@ -10,9 +14,12 @@ void f5(int) __attribute__((availability(ios,introduced=3.2), availability(andro
void test() {
f0(0);
f1(0);
- f2(0); // expected-warning{{'f2' is deprecated: first deprecated in Android 16}}
+ f2(0); // expected-warning-re{{'f2' is deprecated: first deprecated in Android 16{{$}}}}
+#ifdef WARN_PARTIAL
+// expected-warning at +2{{'f3' is only available on Android 19 or newer}} expected-note at +2{{enclose 'f3' in a __builtin_available check to silence this warning}}
+#endif
f3(0);
- f4(0); // expected-error{{f4' is unavailable: obsoleted in Android 16}}
+ f4(0); // expected-error-re{{'f4' is unavailable: obsoleted in Android 16{{$}}}}
f5(0); // expected-error{{'f5' is unavailable: not available on Android}}
}
More information about the cfe-commits
mailing list