aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2008-11-24 09:38:21 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2008-11-24 09:38:21 +0000
commit8b8627380638d0889d6924d1ec10d42a9c743593 (patch)
tree819c4e4da4af623928a3759453f34e583604e4d1
parent887058af514f7288cf8d49128459b9126d892206 (diff)
Add utility methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59956 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Analysis/PathSensitive/SVals.h5
-rw-r--r--lib/Analysis/SVals.cpp9
2 files changed, 14 insertions, 0 deletions
diff --git a/include/clang/Analysis/PathSensitive/SVals.h b/include/clang/Analysis/PathSensitive/SVals.h
index 0bacc863e1..ca78f66099 100644
--- a/include/clang/Analysis/PathSensitive/SVals.h
+++ b/include/clang/Analysis/PathSensitive/SVals.h
@@ -174,12 +174,17 @@ public:
static NonLoc MakeVal(BasicValueFactory& BasicVals, unsigned X,
bool isUnsigned);
+ static NonLoc MakeVal(BasicValueFactory& BasicVals, uint64_t X,
+ unsigned BitWidth, bool isUnsigned);
+
static NonLoc MakeVal(BasicValueFactory& BasicVals, uint64_t X, QualType T);
static NonLoc MakeVal(BasicValueFactory& BasicVals, IntegerLiteral* I);
static NonLoc MakeVal(BasicValueFactory& BasicVals, const llvm::APInt& I,
bool isUnsigned);
+
+ static NonLoc MakeVal(BasicValueFactory& BasicVals, const llvm::APSInt& I);
static NonLoc MakeIntTruthVal(BasicValueFactory& BasicVals, bool b);
diff --git a/lib/Analysis/SVals.cpp b/lib/Analysis/SVals.cpp
index 0210729b46..524904dafa 100644
--- a/lib/Analysis/SVals.cpp
+++ b/lib/Analysis/SVals.cpp
@@ -248,6 +248,11 @@ NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, unsigned X,
isUnsigned));
}
+NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, uint64_t X,
+ unsigned BitWidth, bool isUnsigned) {
+ return nonloc::ConcreteInt(BasicVals.getValue(X, BitWidth, isUnsigned));
+}
+
NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, uint64_t X, QualType T) {
return nonloc::ConcreteInt(BasicVals.getValue(X, T));
}
@@ -263,6 +268,10 @@ NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, const llvm::APInt& I,
return nonloc::ConcreteInt(BasicVals.getValue(I, isUnsigned));
}
+NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, const llvm::APSInt& I) {
+ return nonloc::ConcreteInt(BasicVals.getValue(I));
+}
+
NonLoc NonLoc::MakeIntTruthVal(BasicValueFactory& BasicVals, bool b) {
return nonloc::ConcreteInt(BasicVals.getTruthValue(b));
}