[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