aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJooyung Han <jooyung.han@gmail.com>2024-02-21 14:46:25 +0900
committerGitHub <noreply@github.com>2024-02-20 21:46:25 -0800
commitec516ff3e6122069b36f32a6db8bb3dc672133fc (patch)
tree71fd5f3b765321399c03cbae3e09b8e416f16921
parent44b717df4d837ce4e8d76b00cee2e122ae6ad28c (diff)
downloadllvm-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.c4
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