diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2022-02-08 13:29:49 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2022-02-08 13:33:26 +0000 |
commit | e2537f6b1989213b68eabb662b6dd5b4425f43cd (patch) | |
tree | 834c0985e15fffc4f5d34e86f7f5d887d37b7278 /llvm/lib/Analysis/ValueTracking.cpp | |
parent | 0851970af5771f6721c29d066c88a72db823ba83 (diff) | |
download | llvm-e2537f6b1989213b68eabb662b6dd5b4425f43cd.zip llvm-e2537f6b1989213b68eabb662b6dd5b4425f43cd.tar.gz llvm-e2537f6b1989213b68eabb662b6dd5b4425f43cd.tar.bz2 |
[ValueTracking] Replace dyn_cast with dyn_cast_or_null to account for getTerminator returning null
Noticed while running checks on D117995 - a hexagon regression test was managing to return a block without a terminator
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index c14bdb8..a93430c 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -5125,10 +5125,10 @@ static bool isGuaranteedNotToBeUndefOrPoison(const Value *V, auto *TI = Dominator->getBlock()->getTerminator(); Value *Cond = nullptr; - if (auto BI = dyn_cast<BranchInst>(TI)) { + if (auto BI = dyn_cast_or_null<BranchInst>(TI)) { if (BI->isConditional()) Cond = BI->getCondition(); - } else if (auto SI = dyn_cast<SwitchInst>(TI)) { + } else if (auto SI = dyn_cast_or_null<SwitchInst>(TI)) { Cond = SI->getCondition(); } |