From: Viktor Kutuzov Date: Thu, 10 Jul 2014 09:11:15 +0000 (+0000) Subject: Only use fast stack unwinding for sanitizers failure reports on FreeBSD X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=794d4dde4892b42a6e5f56c2775489d31876a448;p=platform%2Fupstream%2Fllvm.git Only use fast stack unwinding for sanitizers failure reports on FreeBSD Differential Revision: http://reviews.llvm.org/D4420 llvm-svn: 212691 --- diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h index c3ba193..fcaa777 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h @@ -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; }