SelectionDAGBuilder::visitInlineAsm - don't dereference dyn_cast<> results.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 17 Aug 2021 17:20:04 +0000 (18:20 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 17 Aug 2021 17:40:59 +0000 (18:40 +0100)
dyn_cast<> can return nullptr if the cast is illegal, use cast<> instead which will assert that the cast is correct.

Fixes static analyser warning.

llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

index 57fe970..eb27735 100644 (file)
@@ -8708,7 +8708,7 @@ void SelectionDAGBuilder::visitInlineAsm(const CallBase &Call,
           MachineFunction &MF = DAG.getMachineFunction();
           MachineRegisterInfo &MRI = MF.getRegInfo();
           const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo();
-          RegisterSDNode *R = dyn_cast<RegisterSDNode>(AsmNodeOperands[CurOp+1]);
+          auto *R = cast<RegisterSDNode>(AsmNodeOperands[CurOp+1]);
           Register TiedReg = R->getReg();
           MVT RegVT = R->getSimpleValueType(0);
           const TargetRegisterClass *RC = TiedReg.isVirtual() ?