[PATCH] D114385: [libunwind] Fix testing with sanitizers enabled
Daniel Kiss via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 30 08:43:22 PST 2021
danielkiss added inline comments.
================
Comment at: libunwind/test/unwind_leaffunction.pass.cpp:41-43
__attribute__((noinline)) void crashing_leaf_func(void) {
- *faultyPointer = 0;
+ raise(SIGSEGV);
}
----------------
ldionne wrote:
> danielkiss wrote:
> > adding a call here turns the leaf function into a not-leaf function which changes the intention of this test.
> >
> Ugh, that's a good point. I'm not sure how to trigger `SIGSEGV` without invoking a function nor invoking undefined behavior. Do you have a suggestion?
>
> Would using `__builtin_trap()` do any kind of good?
`__builtin_trap()` looks good from codegen / unwind info point of view.
it generates SIGILL on X86, while SIGSEGV on Aarch64 but with the below change it should work.
```
int main(int, char**) {
signal(SIGSEGV, signal_handler);
signal(SIGILL, signal_handler);
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114385/new/
https://reviews.llvm.org/D114385
More information about the llvm-commits
mailing list