@@ -828,18 +828,18 @@ void PrintCurrentStack(ThreadState *thr, uptr pc) {
828828 PrintStack (SymbolizeStack (trace));
829829}
830830
831- // Always inlining PrintCurrentStackSlow , because LocatePcInTrace assumes
831+ // Always inlining PrintCurrentStack , because LocatePcInTrace assumes
832832// __sanitizer_print_stack_trace exists in the actual unwinded stack, but
833- // tail-call to PrintCurrentStackSlow breaks this assumption because
833+ // tail-call to PrintCurrentStack breaks this assumption because
834834// __sanitizer_print_stack_trace disappears after tail-call.
835835// However, this solution is not reliable enough, please see dvyukov's comment
836836// http://reviews.llvm.org/D19148#406208
837837// Also see PR27280 comment 2 and 3 for breaking examples and analysis.
838- ALWAYS_INLINE USED void PrintCurrentStackSlow (uptr pc) {
838+ ALWAYS_INLINE USED void PrintCurrentStack (uptr pc, bool fast ) {
839839#if !SANITIZER_GO
840840 uptr bp = GET_CURRENT_FRAME ();
841841 auto *ptrace = New<BufferedStackTrace>();
842- ptrace->Unwind (pc, bp, nullptr , false );
842+ ptrace->Unwind (pc, bp, nullptr , fast );
843843
844844 for (uptr i = 0 ; i < ptrace->size / 2 ; i++) {
845845 uptr tmp = ptrace->trace_buffer [i];
@@ -857,6 +857,6 @@ using namespace __tsan;
857857extern " C" {
858858SANITIZER_INTERFACE_ATTRIBUTE
859859void __sanitizer_print_stack_trace () {
860- PrintCurrentStackSlow (StackTrace::GetCurrentPc ());
860+ PrintCurrentStack (StackTrace::GetCurrentPc (), false );
861861}
862862} // extern "C"
0 commit comments