summaryrefslogtreecommitdiff
path: root/test/asan
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2018-03-12 21:46:55 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2018-03-12 21:46:55 +0000
commit39ded27815df4a8cb76ad0b55461111ab35378e6 (patch)
tree40c97cf07697d1faccc72bc8d46f5585585df731 /test/asan
parentcc4629e776d0d196dd410cca62b9af110f1225c2 (diff)
[asan] poison_heap=0 should not disable __asan_handle_no_return.
Reviewers: kcc, alekseyshl, vitalybuka Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D44339 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@327337 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/asan')
-rw-r--r--test/asan/TestCases/handle_noreturn_bug.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/asan/TestCases/handle_noreturn_bug.cc b/test/asan/TestCases/handle_noreturn_bug.cc
new file mode 100644
index 000000000..8c3c66a42
--- /dev/null
+++ b/test/asan/TestCases/handle_noreturn_bug.cc
@@ -0,0 +1,13 @@
+// Regression test: __asan_handle_no_return should unpoison stack even with poison_heap=0.
+// RUN: %clangxx_asan -O0 %s -o %t && \
+// RUN: %env_asan_opts=poison_heap=1 %run %t && \
+// RUN: %env_asan_opts=poison_heap=0 %run %t
+
+#include <sanitizer/asan_interface.h>
+
+int main(int argc, char **argv) {
+ int x[2];
+ int * volatile p = &x[0];
+ __asan_handle_no_return();
+ int volatile z = p[2];
+}