llvm-project/clang/test/Sema/attr-availability-ios-fallback-aligned-versions.c
Cyndy Ishida 88f041f3e0
[clang][Darwin] Align all OS Versions for 26 (#143548)
* Translate the following versions to 26.
  * watchOS 12 -> 26
  * visionOS 3 -> 26
  * macos 16 -> 26
  * iOS 19 -> 26
  * tvOS 19 -> 26

* Emit diagnostics, but allow conversion when clients attempt to use
invalid gaps in OS versioning in availability.

* For target-triples, only allow "valid" versions for implicit
conversions.
2025-06-10 09:50:46 -07:00

33 lines
970 B
C

// This validates that all expected OSVersions that allow fallbacks
// from iOS behave as expected against a common version bump.
// RUN: %clang_cc1 "-triple" "arm64-apple-ios26" -fsyntax-only -verify %s
// RUN: %clang_cc1 "-triple" "arm64-apple-watchos26" -fsyntax-only -verify %s
// RUN: %clang_cc1 "-triple" "arm64-apple-tvos26" -fsyntax-only -verify %s
// VisionOS requires SDKSettings support to enable remappings.
// RUN: %clang_cc1 "-triple" "arm64-apple-visionos26" -isysroot %S/Inputs/XROS.sdk -fsyntax-only -verify %s
// expected-no-diagnostics
__attribute__((availability(ios,strict,introduced=19)))
int iOSExistingAPI(void);
__attribute__((availability(ios,strict,introduced=26)))
int iOSExistingAPI2(void);
void testAvailabilityCheck(void) {
if (__builtin_available(iOS 19, *)) {
iOSExistingAPI();
iOSExistingAPI2();
}
if (__builtin_available(iOS 26, *)) {
iOSExistingAPI();
iOSExistingAPI2();
}
iOSExistingAPI2();
}