[compiler-rt] r196894 - [ASan] Fix StackTrace::SlowUnwindStack on Windows

Timur Iskhodzhanov timurrrr at google.com
Tue Dec 10 00:30:39 PST 2013


Author: timurrrr
Date: Tue Dec 10 02:30:39 2013
New Revision: 196894

URL: http://llvm.org/viewvc/llvm-project?rev=196894&view=rev
Log:
[ASan] Fix StackTrace::SlowUnwindStack on Windows

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc?rev=196894&r1=196893&r2=196894&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc Tue Dec 10 02:30:39 2013
@@ -148,7 +148,7 @@ static bool MatchPc(uptr cur_pc, uptr tr
 }
 
 void StackTrace::PopStackFrames(uptr count) {
-  CHECK(count < size);
+  CHECK_LT(count, size);
   size -= count;
   for (uptr i = 0; i < size; ++i) {
     trace[i] = trace[i + count];

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc?rev=196894&r1=196893&r2=196894&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc Tue Dec 10 02:30:39 2013
@@ -382,6 +382,9 @@ void StackTrace::SlowUnwindStack(uptr pc
   // FIXME: Look at LLVMUnhandledExceptionFilter in Signals.inc
   size = CaptureStackBackTrace(2, Min(max_depth, kStackTraceMax),
                                (void**)trace, 0);
+  if (size == 0)
+    return;
+
   // Skip the RTL frames by searching for the PC in the stacktrace.
   uptr pc_location = LocatePcInTrace(pc);
   PopStackFrames(pc_location);





More information about the llvm-commits mailing list