diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-07-15 23:17:54 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-07-15 23:17:54 +0000 |
commit | f46dddac5b26318b8f2aa21f4f20bc6ad23c251a (patch) | |
tree | 355a5b49cf2f0cf008d7ac64b0a62576f160a0c3 /clang/lib/Analysis/GRSimpleVals.cpp | |
parent | 3be3401303260e1c87752b949866184731382955 (diff) | |
download | bcm5719-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.cpp | 4 |
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(); |