[compiler-rt] r183898 - tsan: fix Windows Go crash

Dmitry Vyukov dvyukov at google.com
Thu Jun 13 03:15:45 PDT 2013


Author: dvyukov
Date: Thu Jun 13 05:15:44 2013
New Revision: 183898

URL: http://llvm.org/viewvc/llvm-project?rev=183898&view=rev
Log:
tsan: fix Windows Go crash

Modified:
    compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc

Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc?rev=183898&r1=183897&r2=183898&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc Thu Jun 13 05:15:44 2013
@@ -556,7 +556,9 @@ static void MemoryRangeSet(ThreadState *
   // Don't want to touch lots of shadow memory.
   // If a program maps 10MB stack, there is no need reset the whole range.
   size = (size + (kShadowCell - 1)) & ~(kShadowCell - 1);
-  if (size < 64*1024) {
+  // UnmapOrDie/MmapFixedNoReserve does not work on Windows,
+  // so we do it only for C/C++.
+  if (kGoMode || size < 64*1024) {
     u64 *p = (u64*)MemToShadow(addr);
     CHECK(IsShadowMem((uptr)p));
     CHECK(IsShadowMem((uptr)(p + size * kShadowCnt / kShadowCell - 1)));





More information about the llvm-commits mailing list