summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRSimpleVals.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-07-15 23:17:54 +0000
committerTed Kremenek <kremenek@apple.com>2008-07-15 23:17:54 +0000
commitf46dddac5b26318b8f2aa21f4f20bc6ad23c251a (patch)
tree355a5b49cf2f0cf008d7ac64b0a62576f160a0c3 /clang/lib/Analysis/GRSimpleVals.cpp
parent3be3401303260e1c87752b949866184731382955 (diff)
downloadbcm5719-llvm-f46dddac5b26318b8f2aa21f4f20bc6ad23c251a.tar.gz
bcm5719-llvm-f46dddac5b26318b8f2aa21f4f20bc6ad23c251a.zip
Fix transfer function logic in GRSimpleVals for integer casts: only support casts from integers to integers.
This fixes a crash reported by Anders Carlsson! llvm-svn: 53649
Diffstat (limited to 'clang/lib/Analysis/GRSimpleVals.cpp')
-rw-r--r--clang/lib/Analysis/GRSimpleVals.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Analysis/GRSimpleVals.cpp b/clang/lib/Analysis/GRSimpleVals.cpp
index 860a7860896..562e5794b2f 100644
--- a/clang/lib/Analysis/GRSimpleVals.cpp
+++ b/clang/lib/Analysis/GRSimpleVals.cpp
@@ -377,6 +377,10 @@ RVal GRSimpleVals::EvalCast(GRExprEngine& Eng, NonLVal X, QualType T) {
if (!isa<nonlval::ConcreteInt>(X))
return UnknownVal();
+ // Only handle casts from integers to integers.
+ if (!T->isIntegerType())
+ return UnknownVal();
+
BasicValueFactory& BasicVals = Eng.getBasicVals();
llvm::APSInt V = cast<nonlval::ConcreteInt>(X).getValue();
OpenPOWER on IntegriCloud