summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
diff options
context:
space:
mode:
authorShuxin Yang <shuxin.llvm@gmail.com>2013-01-10 23:32:01 +0000
committerShuxin Yang <shuxin.llvm@gmail.com>2013-01-10 23:32:01 +0000
commitc5c730b0e054de89cbd1ad710157c41e8b5c4381 (patch)
tree3e9509c77ca377350e8c5ffbdf5c3296afe2a907 /llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
parentcc7f008b850b301910132f94224dc02e32418f67 (diff)
downloadbcm5719-llvm-c5c730b0e054de89cbd1ad710157c41e8b5c4381.tar.gz
bcm5719-llvm-c5c730b0e054de89cbd1ad710157c41e8b5c4381.zip
PR14904: Segmentation fault running pass 'Recognize loop idioms'
The root cause is mistakenly taking for granted that "dyn_cast<Instruction>(a-Value)" return a non-NULL instruction. llvm-svn: 172145
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
index c4f90125ac5..8258719a020 100644
--- a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
@@ -407,7 +407,7 @@ bool NclPopcountRecognize::detectIdiom(Instruction *&CntInst,
// step 2: detect instructions corresponding to "x2 = x1 & (x1 - 1)"
{
- if (DefX2->getOpcode() != Instruction::And)
+ if (!DefX2 || DefX2->getOpcode() != Instruction::And)
return false;
BinaryOperator *SubOneOp;
OpenPOWER on IntegriCloud