aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-08-10 16:27:49 +0200
committerDmitry Vyukov <dvyukov@google.com>2021-08-10 16:29:42 +0200
commitfaef0d042f523357fe5590e7cb6a8391cf0351a8 (patch)
treee47022f4db5964afdddda660ac5e9c407ff1d94d /llvm/lib/Analysis/ValueTracking.cpp
parentc1a014c3827cf6dd8365316d94c53e2b4434e111 (diff)
downloadllvm-faef0d042f523357fe5590e7cb6a8391cf0351a8.zip
llvm-faef0d042f523357fe5590e7cb6a8391cf0351a8.tar.gz
llvm-faef0d042f523357fe5590e7cb6a8391cf0351a8.tar.bz2
Problem with realpath interceptor
tsan in some cases (e.g. after fork from multithreaded program, which arguably is problematic) increments ignore_interceptors and in that case runs just the intercepted functions and not their wrappers. For realpath the interceptor handles the resolved_path == nullptr case though and so when ignore_interceptors is non-zero, realpath (".", nullptr) will fail instead of succeeding. This patch uses instead the COMMON_INTERCEPT_FUNCTION_GLIBC_VER_MIN macro to use realpath@@GLIBC_2.3 whenever possible (if not, then it is likely a glibc architecture with more recent oldest symbol version than 2.3, for which any realpath in glibc will DTRT, or unsupported glibc older than 2.3), which never supported NULL as second argument. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D107819
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
0 files changed, 0 insertions, 0 deletions