aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2022-02-08 13:29:49 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2022-02-08 13:33:26 +0000
commite2537f6b1989213b68eabb662b6dd5b4425f43cd (patch)
tree834c0985e15fffc4f5d34e86f7f5d887d37b7278 /llvm/lib/Analysis/ValueTracking.cpp
parent0851970af5771f6721c29d066c88a72db823ba83 (diff)
downloadllvm-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.cpp4
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();
}