]> granicus.if.org Git - clang/commitdiff
Move a few more NonLoc static functions to ValueManager.
authorTed Kremenek <kremenek@apple.com>
Fri, 10 Apr 2009 18:11:44 +0000 (18:11 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 10 Apr 2009 18:11:44 +0000 (18:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68800 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/PathSensitive/SVals.h
include/clang/Analysis/PathSensitive/ValueManager.h
lib/Analysis/GRSimpleVals.cpp
lib/Analysis/SVals.cpp

index 4df198214389427860c5304d61bcb6057b41c9bf..6c9285e53217d09a9d9482c4d85dc7b89b911cb5 100644 (file)
@@ -164,15 +164,6 @@ public:
   void print(llvm::raw_ostream& Out) const;
   
   // Utility methods to create NonLocs.
-  static NonLoc MakeVal(SymbolRef sym);
-
-  static NonLoc MakeVal(SymbolManager& SymMgr, const SymExpr *lhs, 
-                        BinaryOperator::Opcode op, const llvm::APSInt& rhs,
-                        QualType T);
-  
-  static NonLoc MakeVal(SymbolManager& SymMgr, const SymExpr *lhs,
-                        BinaryOperator::Opcode op, const SymExpr *rhs,
-                        QualType T);
 
   static NonLoc MakeIntVal(BasicValueFactory& BasicVals, uint64_t X, 
                            bool isUnsigned);
index 415969b54db030caef1bf6d2b4d865d3a6064687..aeabec80de90076813f84e40fe695f13698678f6 100644 (file)
@@ -84,6 +84,14 @@ public:
   SVal getConjuredSymbolVal(const Expr* E, QualType T, unsigned Count);
 
   SVal getFunctionPointer(const FunctionDecl* FD);
+  
+  NonLoc makeNonLoc(SymbolRef sym);
+  
+  NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
+                    const llvm::APSInt& rhs, QualType T);
+  
+  NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
+                    const SymExpr *rhs, QualType T);  
 };
 } // end clang namespace
 #endif
index 1961da20ffb7e5f2b2909e9b3f52d1a1b4e0b98b..107bea705c38bd03a42813fe8a17892ffaebfd8b 100644 (file)
@@ -231,10 +231,11 @@ SVal GRSimpleVals::DetermEvalBinOpNN(GRExprEngine& Eng,
         }
         
       case nonloc::SymbolValKind:
-        if (isa<nonloc::ConcreteInt>(R))
-          return NonLoc::MakeVal(Eng.getSymbolManager(),
-                                 cast<nonloc::SymbolVal>(L).getSymbol(), Op,
-                                 cast<nonloc::ConcreteInt>(R).getValue(), T);
+        if (isa<nonloc::ConcreteInt>(R)) {
+          ValueManager &ValMgr = Eng.getValueManager();
+          return ValMgr.makeNonLoc(cast<nonloc::SymbolVal>(L).getSymbol(), Op,
+                                   cast<nonloc::ConcreteInt>(R).getValue(), T);
+        }
         else
           return UnknownVal();
     }
index 572d5ec555888183b06d17a40b06e434dcae95e3..87a1073f23c31626c6b17005fd34e91e357bc906 100644 (file)
@@ -218,12 +218,12 @@ SVal ValueManager::makeZeroVal(QualType T) {
 // Utility methods for constructing Non-Locs.
 //===----------------------------------------------------------------------===//
 
-NonLoc NonLoc::MakeVal(SymbolRef sym) {
+NonLoc ValueManager::makeNonLoc(SymbolRef sym) {
   return nonloc::SymbolVal(sym);
 }
 
-NonLoc NonLoc::MakeVal(SymbolManager& SymMgr, const SymExpr *lhs, 
-                       BinaryOperator::Opcode op, const APSInt& v, QualType T) {
+NonLoc ValueManager::makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
+                                const APSInt& v, QualType T) {
   // The Environment ensures we always get a persistent APSInt in
   // BasicValueFactory, so we don't need to get the APSInt from
   // BasicValueFactory again.
@@ -231,9 +231,8 @@ NonLoc NonLoc::MakeVal(SymbolManager& SymMgr, const SymExpr *lhs,
   return nonloc::SymExprVal(SymMgr.getSymIntExpr(lhs, op, v, T));
 }
 
-NonLoc NonLoc::MakeVal(SymbolManager& SymMgr, const SymExpr *lhs, 
-                       BinaryOperator::Opcode op, const SymExpr *rhs,
-QualType T) {
+NonLoc ValueManager::makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
+                                const SymExpr *rhs, QualType T) {
   assert(SymMgr.getType(lhs) == SymMgr.getType(rhs));
   assert(!Loc::IsLocType(T));
   return nonloc::SymExprVal(SymMgr.getSymSymExpr(lhs, op, rhs, T));
@@ -294,7 +293,7 @@ SVal ValueManager::getRValueSymbolVal(const MemRegion* R) {
   
     // Only handle integers for now.
     if (T->isIntegerType() && T->isScalarType())
-      return NonLoc::MakeVal(sym);
+      return makeNonLoc(sym);
   }
 
   return UnknownVal();
@@ -314,7 +313,7 @@ SVal ValueManager::getConjuredSymbolVal(const Expr* E, unsigned Count) {
     return Loc::MakeVal(MemMgr.getSymbolicRegion(sym));
 
   if (T->isIntegerType() && T->isScalarType())
-    return NonLoc::MakeVal(sym);
+    return makeNonLoc(sym);
 
   return UnknownVal();
 }
@@ -334,7 +333,7 @@ SVal ValueManager::getConjuredSymbolVal(const Expr* E, QualType T,
     return Loc::MakeVal(MemMgr.getSymbolicRegion(sym));
 
   if (T->isIntegerType() && T->isScalarType())
-    return NonLoc::MakeVal(sym);
+    return makeNonLoc(sym);
 
   return UnknownVal();
 }