[PATCH] D58550: [Sanitizer] Fix uses of stack->Unwind(..., fast)

Julian Lettner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 22 11:18:34 PST 2019


yln created this revision.
Herald added subscribers: llvm-commits, Sanitizers, kubamracek.
Herald added projects: Sanitizers, LLVM.

Apply StackTrace::WillUseFastUnwind(fast) in a few more places missed by
my previous patch (https://reviews.llvm.org/D58156).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D58550

Files:
  compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc
  compiler-rt/lib/tsan/rtl/tsan_rtl.cc
  compiler-rt/lib/ubsan/ubsan_diag.cc
  compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cc


Index: compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cc
===================================================================
--- compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cc
+++ compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cc
@@ -10,8 +10,8 @@
 
 // XFAIL: netbsd && !asan
 
-// FIXME(dliew): Make this test work with other sanitizers
-// XFAIL: darwin && (tsan || ubsan)
+// FIXME(dliew): Make this test work with TSan
+// XFAIL: darwin && tsan
 
 volatile int *null = 0;
 
Index: compiler-rt/lib/ubsan/ubsan_diag.cc
===================================================================
--- compiler-rt/lib/ubsan/ubsan_diag.cc
+++ compiler-rt/lib/ubsan/ubsan_diag.cc
@@ -30,7 +30,7 @@
                             uptr bp, void *context, bool fast) {
   uptr top = 0;
   uptr bottom = 0;
-  if (fast)
+  if (StackTrace::WillUseFastUnwind(fast))
     GetThreadStackTopAndBottom(false, &top, &bottom);
   stack->Unwind(max_depth, pc, bp, context, top, bottom, fast);
 }
Index: compiler-rt/lib/tsan/rtl/tsan_rtl.cc
===================================================================
--- compiler-rt/lib/tsan/rtl/tsan_rtl.cc
+++ compiler-rt/lib/tsan/rtl/tsan_rtl.cc
@@ -331,7 +331,8 @@
   uptr top = 0;
   uptr bottom = 0;
   bool fast = common_flags()->fast_unwind_on_fatal;
-  if (fast) GetThreadStackTopAndBottom(false, &top, &bottom);
+  if (StackTrace::WillUseFastUnwind(fast))
+    GetThreadStackTopAndBottom(false, &top, &bottom);
   stack->Unwind(kStackTraceMax, sig.pc, sig.bp, sig.context, top, bottom, fast);
 }
 
Index: compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc
===================================================================
--- compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc
+++ compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc
@@ -103,7 +103,7 @@
   GET_CALLER_PC_BP_SP;
   (void)sp;
   bool fast = common_flags()->fast_unwind_on_fatal;
-  if (fast)
+  if (StackTrace::WillUseFastUnwind(fast))
     GetThreadStackTopAndBottom(false, &top, &bottom);
   stack->Unwind(kStackTraceMax, pc, bp, nullptr, top, bottom, fast);
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58550.187954.patch
Type: text/x-patch
Size: 2177 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190222/fd17bd78/attachment.bin>


More information about the llvm-commits mailing list