diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2016-09-26 14:23:34 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2016-09-26 14:23:34 +0000 |
commit | 515106ebc07227b85336816ef77bc39506b8fd26 (patch) | |
tree | dd1268fd4108638957ccee86643222b0934fbcf3 /lib/tsan | |
parent | 20adfa2375dada19fc4647ff74ab30d4455c0d53 (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282407 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan')
-rw-r--r-- | lib/tsan/rtl/tsan_rtl.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/tsan/rtl/tsan_rtl.cc b/lib/tsan/rtl/tsan_rtl.cc index 1d4c35ad7..da1ea2cc5 100644 --- a/lib/tsan/rtl/tsan_rtl.cc +++ b/lib/tsan/rtl/tsan_rtl.cc @@ -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); |