[PATCH] D114036: 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 Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 17 14:53:12 PST 2021


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGa340a491b255: Add Android test case for -Wpartial-availability. Also update Android… (authored by jamesfarrell).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D114036/new/

https://reviews.llvm.org/D114036

Files:
  clang/test/Sema/attr-availability-android.c


Index: clang/test/Sema/attr-availability-android.c
===================================================================
--- clang/test/Sema/attr-availability-android.c
+++ 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 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}}
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D114036.388046.patch
Type: text/x-patch
Size: 2004 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211117/247cdc28/attachment-0001.bin>


More information about the cfe-commits mailing list