From: Simon Pilgrim Date: Mon, 16 Sep 2019 11:22:44 +0000 (+0000) Subject: [VPlanSLP] Don't dereference a cast_or_null result. NFCI. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f4c41d6cba3ed98535902152552bb490483cd8b5;p=llvm [VPlanSLP] Don't dereference a cast_or_null result. NFCI. The static analyzer is warning about a potential null dereference of the cast_or_null result, I've split the cast_or_null check from the ->getUnderlyingInstr() call to avoid this, but it appears that we weren't seeing any null pointers in the dumped bundles in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371975 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Vectorize/VPlanSLP.cpp b/lib/Transforms/Vectorize/VPlanSLP.cpp index e5ab24e52df..9019ed15ec5 100644 --- a/lib/Transforms/Vectorize/VPlanSLP.cpp +++ b/lib/Transforms/Vectorize/VPlanSLP.cpp @@ -346,11 +346,14 @@ SmallVector VPlanSlp::reorderMultiNodeOps() { void VPlanSlp::dumpBundle(ArrayRef Values) { dbgs() << " Ops: "; - for (auto Op : Values) - if (auto *Instr = cast_or_null(Op)->getUnderlyingInstr()) - dbgs() << *Instr << " | "; - else - dbgs() << " nullptr | "; + for (auto Op : Values) { + if (auto *VPInstr = cast_or_null(Op)) + if (auto *Instr = VPInstr->getUnderlyingInstr()) { + dbgs() << *Instr << " | "; + continue; + } + dbgs() << " nullptr | "; + } dbgs() << "\n"; }