aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorKamil Rytarowski <n54@gmx.com>2017-12-06 21:57:39 +0000
committerKamil Rytarowski <n54@gmx.com>2017-12-06 21:57:39 +0000
commit0192818ffe10d08a82739971125da5a3aeeb9fef (patch)
tree6639af8e83830ab4eef422f2823dcbf55dae580c /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parentbf228b9200ebfb6448ed5cc2cd9f5dc6421c40bb (diff)
downloadllvm-0192818ffe10d08a82739971125da5a3aeeb9fef.zip
llvm-0192818ffe10d08a82739971125da5a3aeeb9fef.tar.gz
llvm-0192818ffe10d08a82739971125da5a3aeeb9fef.tar.bz2
Correct atexit(3) support in MSan/NetBSD
Summary: The NetBSD specific implementation of cxa_atexit() does not preserve the 2nd argument if dso is equal to NULL. Changes: - Split paths of handling intercepted __cxa_atexit() and atexit(3). This affects all supported Operating Systems. - Add a local stack-like structure to hold the __cxa_atexit() context. atexit(3) is documented in the C standard as calling callback from the earliest to the oldest entry. This path also fixes potential ABI problem of passing an argument to a function from the atexit(3) callback mechanism. - Allow usage of global vars with ctors in interceptors. This allows to use Vector without automatic cleaning up the structures. This code has been modeled after TSan implementation for the same functions. Sponsored by <The NetBSD Foundation> Reviewers: joerg, dvyukov, eugenis, vitalybuka, kcc Reviewed By: vitalybuka Subscribers: llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D40714 llvm-svn: 319967
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions