summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_platform.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform.h b/compiler-rt/lib/tsan/rtl/tsan_platform.h
index 903ff5be3ea..f9c9eec82a3 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_platform.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_platform.h
@@ -703,13 +703,13 @@ uptr ShadowToMemImpl(uptr s) {
// range consecutively and see if shadow->app->shadow mapping gives us the
// same address.
uptr p = (s / kShadowCnt) ^ Mapping::kAppMemXor;
- if (MemToShadow(p) == s &&
- p >= Mapping::kLoAppMemBeg && p < Mapping::kLoAppMemEnd)
+ if (p >= Mapping::kLoAppMemBeg && p < Mapping::kLoAppMemEnd &&
+ MemToShadow(p) == s)
return p;
# ifdef TSAN_MID_APP_RANGE
p = ((s / kShadowCnt) ^ Mapping::kAppMemXor) + Mapping::kMidShadowOff;
- if (MemToShadow(p) == s &&
- p >= Mapping::kMidAppMemBeg && p < Mapping::kMidAppMemEnd)
+ if (p >= Mapping::kMidAppMemBeg && p < Mapping::kMidAppMemEnd &&
+ MemToShadow(p) == s)
return p;
# endif
return ((s / kShadowCnt) ^ Mapping::kAppMemXor) | Mapping::kAppMemMsk;
OpenPOWER on IntegriCloud