From d9af50efbc5f74fac94384571f9315a452dcfad0 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 21 Apr 2020 18:32:00 +0100 Subject: [PATCH] [Transforms] getOrEnforceKnownAlignment - fix MSVC result of 32-bit shift implicitly converted to 64 bits warning. NFCI We don't overflow here so we can use a U64 shift directly. --- llvm/lib/Transforms/Utils/Local.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 3e4f484f8ac4..b87cb0009113 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1217,7 +1217,7 @@ Align llvm::getOrEnforceKnownAlignment(Value *V, MaybeAlign PrefAlign, // LLVM doesn't support alignments larger than (1 << MaxAlignmentExponent). TrailZ = std::min(TrailZ, +Value::MaxAlignmentExponent); - Align Alignment = Align(1u << std::min(Known.getBitWidth() - 1, TrailZ)); + Align Alignment = Align(1ull << std::min(Known.getBitWidth() - 1, TrailZ)); if (PrefAlign && *PrefAlign > Alignment) Alignment = enforceKnownAlignment(V, Alignment, *PrefAlign, DL);