[compiler-rt] bfb0b85 - [compiler-rt] XFAIL test on iOS
Julian Lettner via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 11 11:59:23 PDT 2020
Author: Julian Lettner
Date: 2020-08-11T11:58:40-07:00
New Revision: bfb0b853b2da6634df4459d844be7ac4739b4e50
URL: https://github.com/llvm/llvm-project/commit/bfb0b853b2da6634df4459d844be7ac4739b4e50
DIFF: https://github.com/llvm/llvm-project/commit/bfb0b853b2da6634df4459d844be7ac4739b4e50.diff
LOG: [compiler-rt] XFAIL test on iOS
On iOS, when we `longjmp()` out of the signal handler, a subsequent call
to `sigaltstack()` still reports that we are executing on the signal
handler stack.
Tracking rdar://66789814
Differential Revision: https://reviews.llvm.org/D85677
Added:
Modified:
compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp b/compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp
index 60a561279a15..d684810201c4 100644
--- a/compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp
+++ b/compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp
@@ -6,6 +6,8 @@
// RUN: %clangxx_asan -std=c++20 -fexceptions -O0 %s -o %t -pthread
// RUN: %run %t
+// XFAIL: ios && !iossim
+
#include <cassert>
#include <cerrno>
#include <csetjmp>
@@ -62,12 +64,14 @@ void testOnCurrentStack() {
c.RightRedzone - c.LeftRedzone));
}
+bool isOnSignalStack() {
+ stack_t Stack;
+ sigaltstack(nullptr, &Stack);
+ return Stack.ss_flags == SS_ONSTACK;
+}
+
void signalHandler(int, siginfo_t *, void *) {
- {
- stack_t Stack;
- sigaltstack(nullptr, &Stack);
- assert(Stack.ss_flags == SS_ONSTACK);
- }
+ assert(isOnSignalStack());
// test on signal alternate stack
testOnCurrentStack();
@@ -110,6 +114,8 @@ void *threadFun(void *AltStack) {
// Test on signal alternate stack, via signalHandler
poisonStackAndJump(defaultStack, [] { raise(SIGUSR1); });
+ assert(!isOnSignalStack());
+
assert(0 == __asan_region_is_poisoned(
defaultStack.LeftRedzone,
defaultStack.RightRedzone - defaultStack.LeftRedzone));
More information about the llvm-commits
mailing list