d83c9005cf
Unfortunately, the `sanitizer_common` tests are disabled on many targets that are supported by `sanitizer_common`, making it easy to miss issues with that support. This patch enables SPARC testing. Beside the enabling proper, the patch fixes (together with D91607 <https://reviews.llvm.org/D91607>) the failures of the `symbolize_pc.cpp`, `symbolize_pc_demangle.cpp`, and `symbolize_pc_inline.cpp` tests. They lack calls to `__builtin_extract_return_addr`. When those are added, they `PASS` when compiled with `gcc`. `clang` incorrectly doesn't implement a non-default `__builtin_extract_return_addr` on several targets, SPARC included. Because `__builtin_extract_return_addr(__builtin_return_addr(0))` is quite a mouthful and I'm uncertain if the code needs to compile with msvc which appparently has it's own `_ReturnAddress`, I've introduced `__sanitizer_return_addr` to hide the difference and complexity. Because on 32-bit SPARC `__builtin_extract_return_addr` differs when the calling function returns a struct, I've added a testcase for that. There are a couple more tests failing on SPARC that I will deal with separately. Tested on `sparcv9-sun-solaris2.11`, `amd64-pc-solaris2.11`, and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D91608 |
||
---|---|---|
.. | ||
allocator_interface.h | ||
asan_interface.h | ||
common_interface_defs.h | ||
coverage_interface.h | ||
dfsan_interface.h | ||
hwasan_interface.h | ||
linux_syscall_hooks.h | ||
lsan_interface.h | ||
memprof_interface.h | ||
msan_interface.h | ||
netbsd_syscall_hooks.h | ||
scudo_interface.h | ||
tsan_interface_atomic.h | ||
tsan_interface.h | ||
ubsan_interface.h |