[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