diff options
author | Jooyung Han <jooyung.han@gmail.com> | 2024-02-21 14:46:25 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 21:46:25 -0800 |
commit | ec516ff3e6122069b36f32a6db8bb3dc672133fc (patch) | |
tree | 71fd5f3b765321399c03cbae3e09b8e416f16921 | |
parent | 44b717df4d837ce4e8d76b00cee2e122ae6ad28c (diff) | |
download | llvm-ec516ff3e6122069b36f32a6db8bb3dc672133fc.zip llvm-ec516ff3e6122069b36f32a6db8bb3dc672133fc.tar.gz llvm-ec516ff3e6122069b36f32a6db8bb3dc672133fc.tar.bz2 |
Fix __isOSVersionAtLeast for Android (#80496)
Allow pre-release APIs on pre-release devices.
The current implementation requires __ANDROID_API_FUTURE__ to use new
APIs on pre-release system. This makes it hard to maintain the codebase
because it should be switched a concrete version (e.g. __ANDROID_API_X__
on release of X).
Instead, we can just allow pre-release APIs on pre-release system
without mandating the major version of __ANDROID_API_FUTURE__.
Note that this doesn't make API guards just no-op in pre-release builds.
We can still rely on its compile-time checks and it still works as
expected with release builds. Even with pre-release builds, it's the
same as before because we would pass __ANDROID_API_FUTURE__ to make the
calls anyway.
-rw-r--r-- | compiler-rt/lib/builtins/os_version_check.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler-rt/lib/builtins/os_version_check.c b/compiler-rt/lib/builtins/os_version_check.c index 182eabe..01fae83 100644 --- a/compiler-rt/lib/builtins/os_version_check.c +++ b/compiler-rt/lib/builtins/os_version_check.c @@ -316,8 +316,8 @@ int32_t __isOSVersionAtLeast(int32_t Major, int32_t Minor, int32_t Subminor) { static pthread_once_t once = PTHREAD_ONCE_INIT; pthread_once(&once, readSystemProperties); - return SdkVersion >= Major || - (IsPreRelease && Major == __ANDROID_API_FUTURE__); + // Allow all on pre-release. Note that we still rely on compile-time checks. + return SdkVersion >= Major || IsPreRelease; } #else |