summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2012-11-19 11:22:22 +0000
committerAlexey Samsonov <samsonov@google.com>2012-11-19 11:22:22 +0000
commit27a22688b90c05f79087a24b6807ea5f1e6e4d39 (patch)
tree8f560de67c7fde532ab7ffdbe261a64c8e1262eb
parent386e2d853b9f37d16f1b11c725e9eb30f0b924fa (diff)
downloadbcm5719-llvm-27a22688b90c05f79087a24b6807ea5f1e6e4d39.tar.gz
bcm5719-llvm-27a22688b90c05f79087a24b6807ea5f1e6e4d39.zip
[ASan] use raw Exit() to kill the program in case ASan finds an error while reporting the error in the same thread
llvm-svn: 168308
-rw-r--r--compiler-rt/lib/asan/asan_report.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler-rt/lib/asan/asan_report.cc b/compiler-rt/lib/asan/asan_report.cc
index 2fbf8fd8ac8..78fbce365d5 100644
--- a/compiler-rt/lib/asan/asan_report.cc
+++ b/compiler-rt/lib/asan/asan_report.cc
@@ -289,7 +289,9 @@ class ScopedInErrorReport {
// an error report will finish doing it.
SleepForSeconds(Max(100, flags()->sleep_before_dying + 1));
}
- Die();
+ // If we're still not dead for some reason, use raw Exit() instead of
+ // Die() to bypass any additional checks.
+ Exit(flags()->exitcode);
}
__asan_on_error();
reporting_thread_tid = asanThreadRegistry().GetCurrentTidOrInvalid();
OpenPOWER on IntegriCloud