aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/TargetLibraryInfo.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-05-17 08:16:08 +0000
committerMartin Storsjo <martin@martin.st>2018-05-17 08:16:08 +0000
commitc10788728bb5f15bff2c080e75831e3d710aa8f9 (patch)
treeaeb0abbe7cb6416d658b3064132bfe9d12258e70 /llvm/lib/Analysis/TargetLibraryInfo.cpp
parent295a554ce4a29ab2ef5e9ab538ac83596a536635 (diff)
downloadllvm-c10788728bb5f15bff2c080e75831e3d710aa8f9.zip
llvm-c10788728bb5f15bff2c080e75831e3d710aa8f9.tar.gz
llvm-c10788728bb5f15bff2c080e75831e3d710aa8f9.tar.bz2
[Analysis] Only use _unlocked stdio functions on linux
The existing comment said that the functions were available only on GNU/Linux (and on certain Android versions), but only checked T.isGNUEnvironment() which also is true on MinGW (for arch-windows-gnu triplets), which doesn't have such functions. Existing checks in the initialize function in TargetLibraryInfo.cpp also use only T.isOSLinux() to check for glibc features. This fixes use of stdio on MinGW. Differential Revision: https://reviews.llvm.org/D47002 llvm-svn: 332581
Diffstat (limited to 'llvm/lib/Analysis/TargetLibraryInfo.cpp')
-rw-r--r--llvm/lib/Analysis/TargetLibraryInfo.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp
index 05fa201..b223662 100644
--- a/llvm/lib/Analysis/TargetLibraryInfo.cpp
+++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp
@@ -482,7 +482,8 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T,
TLI.setUnavailable(LibFunc_sinhl_finite);
}
- if (T.isGNUEnvironment() || (T.isAndroid() && !T.isAndroidVersionLT(28))) {
+ if ((T.isOSLinux() && T.isGNUEnvironment()) ||
+ (T.isAndroid() && !T.isAndroidVersionLT(28))) {
// available IO unlocked variants on GNU/Linux and Android P or later
TLI.setAvailable(LibFunc_getc_unlocked);
TLI.setAvailable(LibFunc_getchar_unlocked);