summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/cfi/cfi.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler-rt/lib/cfi/cfi.cc b/compiler-rt/lib/cfi/cfi.cc
index 27b745853be..3191b568313 100644
--- a/compiler-rt/lib/cfi/cfi.cc
+++ b/compiler-rt/lib/cfi/cfi.cc
@@ -88,11 +88,12 @@ static void fill_shadow(uptr begin, uptr end, uptr cfi_check) {
*s = sv;
// Sanity checks.
- for (; p < end; p += kShadowAlign) {
- assert((uptr)ShadowValue::load(p).get_cfi_check() == cfi_check);
- assert((uptr)ShadowValue::load(p + kShadowAlign / 2).get_cfi_check() ==
+ uptr q = p & ~(kShadowAlign - 1);
+ for (; q < end; q += kShadowAlign) {
+ assert((uptr)ShadowValue::load(q).get_cfi_check() == cfi_check);
+ assert((uptr)ShadowValue::load(q + kShadowAlign / 2).get_cfi_check() ==
cfi_check);
- assert((uptr)ShadowValue::load(p + kShadowAlign - 1).get_cfi_check() ==
+ assert((uptr)ShadowValue::load(q + kShadowAlign - 1).get_cfi_check() ==
cfi_check);
}
}
OpenPOWER on IntegriCloud