[compiler-rt] 07092ea - [asan] Fix GCC warning "left shift count >= width"
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 12 13:04:08 PST 2021
Author: Vitaly Buka
Date: 2021-11-12T13:04:00-08:00
New Revision: 07092ea6bd1370da5eb9e05cc2910039f5f08bbd
URL: https://github.com/llvm/llvm-project/commit/07092ea6bd1370da5eb9e05cc2910039f5f08bbd
DIFF: https://github.com/llvm/llvm-project/commit/07092ea6bd1370da5eb9e05cc2910039f5f08bbd.diff
LOG: [asan] Fix GCC warning "left shift count >= width"
Fixes PR52385
Added:
Modified:
compiler-rt/lib/asan/asan_allocator.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/asan/asan_allocator.cpp b/compiler-rt/lib/asan/asan_allocator.cpp
index 6d7073710bd19..3fa36742060bd 100644
--- a/compiler-rt/lib/asan/asan_allocator.cpp
+++ b/compiler-rt/lib/asan/asan_allocator.cpp
@@ -102,19 +102,18 @@ class ChunkHeader {
public:
uptr UsedSize() const {
- uptr R = user_requested_size_lo;
- if (sizeof(uptr) > sizeof(user_requested_size_lo))
- R += (uptr)user_requested_size_hi << (8 * sizeof(user_requested_size_lo));
- return R;
+ static_assert(sizeof(user_requested_size_lo) == 4,
+ "Expression below requires this");
+ return FIRST_32_SECOND_64(0, ((uptr)user_requested_size_hi << 32)) +
+ user_requested_size_lo;
}
void SetUsedSize(uptr size) {
user_requested_size_lo = size;
- if (sizeof(uptr) > sizeof(user_requested_size_lo)) {
- size >>= (8 * sizeof(user_requested_size_lo));
- user_requested_size_hi = size;
- CHECK_EQ(user_requested_size_hi, size);
- }
+ static_assert(sizeof(user_requested_size_lo) == 4,
+ "Expression below requires this");
+ user_requested_size_hi = FIRST_32_SECOND_64(0, size >> 32);
+ CHECK_EQ(UsedSize(), size);
}
void SetAllocContext(u32 tid, u32 stack) {
More information about the llvm-commits
mailing list