From: Guillaume Chatelet Date: Mon, 6 Jul 2020 08:44:49 +0000 (+0000) Subject: Fix 46594 - Alignment assertion failure in instcombine X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=04288e93be7bbcdca5707d84149e864923f9ed25;p=android-x86%2Fexternal-llvm-project.git Fix 46594 - Alignment assertion failure in instcombine --- diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index 966b3246f4f..836af6234ad 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -4540,10 +4540,11 @@ static void annotateAnyAllocSite(CallBase &Call, const TargetLibraryInfo *TLI) { Call.getContext(), Op1C->getZExtValue())); // Add alignment attribute if alignment is a power of two constant. if (Op0C && Op0C->getValue().ult(llvm::Value::MaximumAlignment)) { - if (MaybeAlign AlignmentVal = Op0C->getMaybeAlignValue()) - Call.addAttribute( - AttributeList::ReturnIndex, - Attribute::getWithAlignment(Call.getContext(), *AlignmentVal)); + uint64_t AlignmentVal = Op0C->getZExtValue(); + if (llvm::isPowerOf2_64(AlignmentVal)) + Call.addAttribute(AttributeList::ReturnIndex, + Attribute::getWithAlignment(Call.getContext(), + Align(AlignmentVal))); } } else if (isReallocLikeFn(&Call, TLI) && Op1C) { Call.addAttribute(AttributeList::ReturnIndex,