From: Reid Kleckner Date: Wed, 9 Nov 2016 21:27:58 +0000 (+0000) Subject: [asan/win] Use TerminateProcess when we want to exit abnormally X-Git-Tag: llvmorg-4.0.0-rc1~5098 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=76b4261082ca12aac7d212d9310b0ac8510877a9;p=platform%2Fupstream%2Fllvm.git [asan/win] Use TerminateProcess when we want to exit abnormally ExitProcess still runs some code which can lead to ASan interceptors running after CHECK failure. This can lead to deadlock if it CHECK fails again. Avoid that mess by really exiting immediately. llvm-svn: 286395 --- diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc index e029953017d1..54c15a5695b6 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc @@ -656,7 +656,8 @@ uptr internal_sched_yield() { } void internal__exit(int exitcode) { - ExitProcess(exitcode); + // ExitProcess runs some finalizers, so use TerminateProcess to avoid that. + TerminateProcess(GetCurrentProcess(), 3); } uptr internal_ftruncate(fd_t fd, uptr size) {