diff options
author | Alexey Samsonov <samsonov@google.com> | 2012-11-19 11:22:22 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2012-11-19 11:22:22 +0000 |
commit | 27a22688b90c05f79087a24b6807ea5f1e6e4d39 (patch) | |
tree | 8f560de67c7fde532ab7ffdbe261a64c8e1262eb | |
parent | 386e2d853b9f37d16f1b11c725e9eb30f0b924fa (diff) | |
download | bcm5719-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.cc | 4 |
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(); |