aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/FrontendAction.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2023-09-02 12:36:53 +0200
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2023-09-02 12:36:53 +0200
commit208f9a2afcc9882c2eebe0c00d296bd1226de103 (patch)
treee1b49a56472626740d9d42ca16ba23f3b560617b /clang/lib/Frontend/FrontendAction.cpp
parent6081d3342d0e641b03368c0dc8688c3e9ca3c193 (diff)
downloadllvm-208f9a2afcc9882c2eebe0c00d296bd1226de103.zip
llvm-208f9a2afcc9882c2eebe0c00d296bd1226de103.tar.gz
llvm-208f9a2afcc9882c2eebe0c00d296bd1226de103.tar.bz2
[msan][s390x] Fix long double interceptors
s390x is one of the architectures where the "long double" type was changed from a 64-bit IEEE to a 128-bit IEEE type back in the glibc 2.4 days. This means that glibc still exports two versions of the long double functions (those that already existed back then), and we have to intercept the correct version. There is already an existing define SANITIZER_NLDBL_VERSION that indicates this situation, we simply have to respect it when intercepting strtold and wcstold. In addition, on s390x a long double return value is passed in memory via implicit reference. This means the interceptor for functions returning long double has to unpoison that memory slot, or else we will get false-positive uninitialized memory reference warnings when the caller accesses that return value - similar to what is already done in the mallinfo interceptor. Create a variant macro INTERCEPTOR_STRTO_SRET and use it on s390x. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D159378
Diffstat (limited to 'clang/lib/Frontend/FrontendAction.cpp')
0 files changed, 0 insertions, 0 deletions