[llvm] r372743 - ConstantFold - silence static analyzer dyn_cast<> null dereference warning. NFCI.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 1 14:49:34 PDT 2019


Yes, I've changed it to a cast<> at rL373321.

Cheers, Simon.

On 01/10/2019 16:09, David Blaikie wrote:
> Because the condition comes from a Constant it must itself be a 
> Constant? Could you change it to a cast<> then?
>
> On Tue, Oct 1, 2019 at 1:31 AM Simon Pilgrim <llvm-dev at redking.me.uk 
> <mailto:llvm-dev at redking.me.uk>> wrote:
>
>     TBH I think was being over cautious - we should be able to just
>     use cast<Constant> as we've already confirmed that CondV is a
>     ConstantVector
>
>     On 30/09/2019 21:35, David Blaikie wrote:
>>     Any test coverage for this codepath?
>>
>>     On Tue, Sep 24, 2019 at 5:28 AM Simon Pilgrim via llvm-commits
>>     <llvm-commits at lists.llvm.org
>>     <mailto:llvm-commits at lists.llvm.org>> wrote:
>>
>>         Author: rksimon
>>         Date: Tue Sep 24 05:30:13 2019
>>         New Revision: 372743
>>
>>         URL: http://llvm.org/viewvc/llvm-project?rev=372743&view=rev
>>         Log:
>>         ConstantFold - silence static analyzer dyn_cast<> null
>>         dereference warning. NFCI.
>>
>>         Early out if the vector element is not Constant.
>>
>>         Modified:
>>             llvm/trunk/lib/IR/ConstantFold.cpp
>>
>>         Modified: llvm/trunk/lib/IR/ConstantFold.cpp
>>         URL:
>>         http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/ConstantFold.cpp?rev=372743&r1=372742&r2=372743&view=diff
>>         ==============================================================================
>>         --- llvm/trunk/lib/IR/ConstantFold.cpp (original)
>>         +++ llvm/trunk/lib/IR/ConstantFold.cpp Tue Sep 24 05:30:13 2019
>>         @@ -747,6 +747,7 @@ Constant *llvm::ConstantFoldSelectInstru
>>                Constant *V2Element = ConstantExpr::getExtractElement(V2,
>>          ConstantInt::get(Ty, i));
>>                Constant *Cond = dyn_cast<Constant>(CondV->getOperand(i));
>>         +      if (!Cond) break;
>>                if (V1Element == V2Element) {
>>                  V = V1Element;
>>                } else if (isa<UndefValue>(Cond)) {
>>
>>
>>         _______________________________________________
>>         llvm-commits mailing list
>>         llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>>         https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191001/092ec889/attachment.html>


More information about the llvm-commits mailing list