From: Zhongxing Xu Date: Mon, 24 Nov 2008 09:38:21 +0000 (+0000) Subject: Add utility methods. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b8627380638d0889d6924d1ec10d42a9c743593;p=clang Add utility methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59956 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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)); }