diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2022-05-04 10:43:11 +0200 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2022-05-04 10:43:11 +0200 |
commit | 71672375fe91d602699ae2a6d6a88e910ff91b5c (patch) | |
tree | 0b76298f28133c99e741feeb1bf364e4c6bfdeb6 /libunwind/test | |
parent | f1b9245199f3457a4d06d32d1bc6e44573c166e3 (diff) | |
download | llvm-71672375fe91d602699ae2a6d6a88e910ff91b5c.tar.gz |
[libunwind][SystemZ] Unwind out of signal handlers
Unwinding out of signal handlers currently does not work since
the sigreturn trampoline is not annotated with CFI data.
Fix this by detecting the sigreturn trampoline during unwinding
and providing appropriate unwind data manually. This follows
closely the approach used by existing code for the AArch64 target.
Reviewed by: MaskRay
Differential Revision: https://reviews.llvm.org/D124765
Diffstat (limited to 'libunwind/test')
-rw-r--r-- | libunwind/test/signal_unwind.pass.cpp | 2 | ||||
-rw-r--r-- | libunwind/test/unwind_leaffunction.pass.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/libunwind/test/signal_unwind.pass.cpp b/libunwind/test/signal_unwind.pass.cpp index 4f2e92534960..2ff50abbebb6 100644 --- a/libunwind/test/signal_unwind.pass.cpp +++ b/libunwind/test/signal_unwind.pass.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Ensure that the unwinder can cope with the signal handler. -// REQUIRES: linux && (target={{aarch64-.+}} || target={{x86_64-.+}}) +// REQUIRES: linux && (target={{aarch64-.+}} || target={{s390x-.+}} || target={{x86_64-.+}}) // TODO: Figure out why this fails with Memory Sanitizer. // XFAIL: msan diff --git a/libunwind/test/unwind_leaffunction.pass.cpp b/libunwind/test/unwind_leaffunction.pass.cpp index a112d755dfee..f363dfe4a29d 100644 --- a/libunwind/test/unwind_leaffunction.pass.cpp +++ b/libunwind/test/unwind_leaffunction.pass.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Ensure that leaf function can be unwund. -// REQUIRES: linux && (target={{aarch64-.+}} || target={{x86_64-.+}}) +// REQUIRES: linux && (target={{aarch64-.+}} || target={{s390x-.+}} || target={{x86_64-.+}}) // TODO: Figure out why this fails with Memory Sanitizer. // XFAIL: msan |