aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/Lint.cpp
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2010-11-17 10:23:23 +0000
committerDuncan Sands <baldrick@free.fr>2010-11-17 10:23:23 +0000
commit23a19572b2839ee3a6a3520d60d62a465cec7d53 (patch)
treec2c21d4d19c1585eb138cca7ce5279c97b01a7ee /lib/Analysis/Lint.cpp
parentbaa45f7298c266f0f89b17e50e9d98709dde84d7 (diff)
downloadexternal_llvm-23a19572b2839ee3a6a3520d60d62a465cec7d53.zip
external_llvm-23a19572b2839ee3a6a3520d60d62a465cec7d53.tar.gz
external_llvm-23a19572b2839ee3a6a3520d60d62a465cec7d53.tar.bz2
Now that hasConstantValue has been made simpler, it may return the
phi node itself if it occurs in an unreachable basic block. Protect against this. Hopefully this will fix some more buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119493 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/Lint.cpp')
-rw-r--r--lib/Analysis/Lint.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Analysis/Lint.cpp b/lib/Analysis/Lint.cpp
index e5e7cd3..0cdb4b1 100644
--- a/lib/Analysis/Lint.cpp
+++ b/lib/Analysis/Lint.cpp
@@ -583,7 +583,8 @@ Value *Lint::findValueImpl(Value *V, bool OffsetOk,
}
} else if (PHINode *PN = dyn_cast<PHINode>(V)) {
if (Value *W = PN->hasConstantValue())
- return findValueImpl(W, OffsetOk, Visited);
+ if (W != V)
+ return findValueImpl(W, OffsetOk, Visited);
} else if (CastInst *CI = dyn_cast<CastInst>(V)) {
if (CI->isNoopCast(TD ? TD->getIntPtrType(V->getContext()) :
Type::getInt64Ty(V->getContext())))