diff options
| author | Rainer Orth <ro@gcc.gnu.org> | 2022-02-01 22:33:56 +0100 |
|---|---|---|
| committer | Rainer Orth <ro@gcc.gnu.org> | 2022-02-01 22:33:56 +0100 |
| commit | d83c9005cf81e6f7cc00b695726d0c5698b83c1e (patch) | |
| tree | dbedb3301c242c546562f4e3e36468fe871dae99 /llvm/lib/Transforms/Utils/LoopPeel.cpp | |
| parent | d7c4072fdb189dfac1af3cc5bdd0499aec734c43 (diff) | |
| download | llvm-d83c9005cf81e6f7cc00b695726d0c5698b83c1e.zip llvm-d83c9005cf81e6f7cc00b695726d0c5698b83c1e.tar.gz llvm-d83c9005cf81e6f7cc00b695726d0c5698b83c1e.tar.bz2 | |
[sanitizer_common][test] Enable tests on SPARC
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
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopPeel.cpp')
0 files changed, 0 insertions, 0 deletions
