[llvm] caff2ac - [AArch64] AArch64DAGToDAGISel::tryReadRegister/tryWriteRegister - don't dereference dyn_cast<> results.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 17 10:41:13 PDT 2021
Author: Simon Pilgrim
Date: 2021-08-17T18:40:59+01:00
New Revision: caff2acae13eebb83ca2f648ad787ab77c6e6271
URL: https://github.com/llvm/llvm-project/commit/caff2acae13eebb83ca2f648ad787ab77c6e6271
DIFF: https://github.com/llvm/llvm-project/commit/caff2acae13eebb83ca2f648ad787ab77c6e6271.diff
LOG: [AArch64] AArch64DAGToDAGISel::tryReadRegister/tryWriteRegister - don't dereference dyn_cast<> results.
dyn_cast<> can return nullptr if the cast is illegal, use cast<> instead which will assert that the cast is correct.
Fixes static analyser warnings.
Added:
Modified:
llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
index 58048869fa2e..e556533cb089 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
@@ -2965,8 +2965,8 @@ static int getIntOperandFromRegisterString(StringRef RegString) {
// form described in getIntOperandsFromRegsterString) or is a named register
// known by the MRS SysReg mapper.
bool AArch64DAGToDAGISel::tryReadRegister(SDNode *N) {
- const MDNodeSDNode *MD = dyn_cast<MDNodeSDNode>(N->getOperand(1));
- const MDString *RegString = dyn_cast<MDString>(MD->getMD()->getOperand(0));
+ const auto *MD = cast<MDNodeSDNode>(N->getOperand(1));
+ const auto *RegString = cast<MDString>(MD->getMD()->getOperand(0));
SDLoc DL(N);
int Reg = getIntOperandFromRegisterString(RegString->getString());
@@ -3011,8 +3011,8 @@ bool AArch64DAGToDAGISel::tryReadRegister(SDNode *N) {
// form described in getIntOperandsFromRegsterString) or is a named register
// known by the MSR SysReg mapper.
bool AArch64DAGToDAGISel::tryWriteRegister(SDNode *N) {
- const MDNodeSDNode *MD = dyn_cast<MDNodeSDNode>(N->getOperand(1));
- const MDString *RegString = dyn_cast<MDString>(MD->getMD()->getOperand(0));
+ const auto *MD = cast<MDNodeSDNode>(N->getOperand(1));
+ const auto *RegString = cast<MDString>(MD->getMD()->getOperand(0));
SDLoc DL(N);
int Reg = getIntOperandFromRegisterString(RegString->getString());
More information about the llvm-commits
mailing list