Only use fast stack unwinding for sanitizers failure reports on FreeBSD

Differential Revision: http://reviews.llvm.org/D4420

llvm-svn: 212691
This commit is contained in:
Viktor Kutuzov 2014-07-10 09:11:15 +00:00
parent d0907ae222
commit 794d4dde48
1 changed files with 4 additions and 1 deletions

View File

@ -52,9 +52,12 @@ struct StackTrace {
static bool WillUseFastUnwind(bool request_fast_unwind) {
// Check if fast unwind is available. Fast unwind is the only option on Mac.
// It is also the only option on FreeBSD as the slow unwinding that
// leverages _Unwind_Backtrace() yields the call stack of the signal's
// handler and not of the code that raised the signal (as it does on Linux).
if (!SANITIZER_CAN_FAST_UNWIND)
return false;
else if (SANITIZER_MAC)
else if (SANITIZER_MAC != 0 || SANITIZER_FREEBSD != 0)
return true;
return request_fast_unwind;
}