[compiler-rt] r282407 - tsan: relaxed check in CheckShadowMapping

Dmitry Vyukov via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 26 07:23:34 PDT 2016


Author: dvyukov
Date: Mon Sep 26 09:23:34 2016
New Revision: 282407

URL: http://llvm.org/viewvc/llvm-project?rev=282407&view=rev
Log:
tsan: relaxed check in CheckShadowMapping

Some platforms use strange addresses in shadow mapping.
E.g. aarch64/42vma:
  static const uptr kHiAppMemEnd   = 0x3ffffffffffull;
instead of 0x40000000000ull (the range is half-open).
This caused bot failures after r282405:
http://lab.llvm.org:8011/builders/clang-cmake-aarch64-42vma/builds/12242/steps/ninja%20check%201/logs/FAIL%3A%20SanitizerCommon-tsan-aarch64-Linux%3A%3Aclock_gettime.c
Relaxed the new check in CheckShadowMapping to not expect round addresses.


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=282407&r1=282406&r2=282407&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc Mon Sep 26 09:23:34 2016
@@ -295,8 +295,7 @@ static void CheckShadowMapping() {
     uptr prev = 0;
     for (uptr p0 = beg; p0 <= end; p0 += (end - beg) / 4) {
       for (int x = -(int)kShadowCell; x <= (int)kShadowCell; x += kShadowCell) {
-        const uptr p = p0 + x;
-        CHECK_EQ(p, RoundDown(p, kShadowCell));
+        const uptr p = RoundDown(p0 + x, kShadowCell);
         if (p < beg || p >= end)
           continue;
         const uptr s = MemToShadow(p);




More information about the llvm-commits mailing list