]> granicus.if.org Git - llvm/commitdiff
Try to fix the assert in Alignment::alignAddr to work on 32-bit
authorHans Wennborg <hans@hanshq.net>
Thu, 17 Oct 2019 09:01:39 +0000 (09:01 +0000)
committerHans Wennborg <hans@hanshq.net>
Thu, 17 Oct 2019 09:01:39 +0000 (09:01 +0000)
Hopefully fixing the AlignmentDeathTest.AlignAddr failures (e.g. at
http://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/10925)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375090 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Alignment.h

index 6925cb52d0066bb46b4d0581033d05511827fc5d..72fad87dd0d4d89aa44c874a968a2dd85d0f4e7e 100644 (file)
@@ -183,7 +183,8 @@ inline uint64_t alignTo(uint64_t Size, MaybeAlign A) {
 /// Aligns `Addr` to `Alignment` bytes, rounding up.
 inline uintptr_t alignAddr(const void *Addr, Align Alignment) {
   uintptr_t ArithAddr = reinterpret_cast<uintptr_t>(Addr);
-  assert(ArithAddr + Alignment.value() - 1 >= ArithAddr && "Overflow");
+  assert(static_cast<uintptr_t>(ArithAddr + Alignment.value() - 1) >=
+             ArithAddr && "Overflow");
   return alignTo(ArithAddr, Alignment);
 }