]> granicus.if.org Git - clang/commitdiff
Don't use std::auto_ptr with getSubRegionMap().
authorTed Kremenek <kremenek@apple.com>
Tue, 3 Mar 2009 19:02:42 +0000 (19:02 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 3 Mar 2009 19:02:42 +0000 (19:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65957 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/PathSensitive/Store.h
lib/Analysis/BasicStore.cpp
lib/Analysis/GRState.cpp
lib/Analysis/RegionStore.cpp

index ac0625dd01995144df9d08aa7f8ff7649f0bb8fa..4514de752df67d159ef3f1e6ed26edec39c887f1 100644 (file)
@@ -81,8 +81,9 @@ public:
   MemRegionManager& getRegionManager() { return MRMgr; }
   
   /// getSubRegionMap - Returns an opaque map object that clients can query
-  ///  to get the subregions of a given MemRegion object.
-  virtual std::auto_ptr<SubRegionMap> getSubRegionMap(const GRState *state) = 0;
+  ///  to get the subregions of a given MemRegion object.  It is the
+  //   caller's responsibility to 'delete' the returned map.
+  virtual SubRegionMap* getSubRegionMap(const GRState *state) = 0;
 
   virtual SVal getLValueVar(const GRState* St, const VarDecl* VD) = 0;
 
index 35c6652fe58b80b0f398d0a12cbda3eeebdb7c25..2e619baf2f48284485234b16079df47343d2d866 100644 (file)
@@ -47,8 +47,8 @@ public:
   
   ~BasicStoreManager() {}
 
-  std::auto_ptr<SubRegionMap> getSubRegionMap(const GRState *state) {
-    return std::auto_ptr<SubRegionMap>(new BasicStoreSubRegionMap());
+  SubRegionMap* getSubRegionMap(const GRState *state) {
+    return new BasicStoreSubRegionMap();
   }
 
   SVal Retrieve(const GRState *state, Loc loc, QualType T = QualType());  
index 28e819085aff262108137614b7027cb0a30e5491..eb6b1b5cfaa963347c9f31e8af6d9d242254118f 100644 (file)
@@ -278,7 +278,7 @@ bool ScanReachableSymbols::scan(const MemRegion *R) {
   
   // Now look at the subregions.
   if (!SRM.get())
-   SRM.reset(state.getManager().getStoreManager().getSubRegionMap(state).get());
+   SRM.reset(state.getManager().getStoreManager().getSubRegionMap(state));
   
   return SRM->iterSubRegions(R, *this);
 }
index 6238ff20ed7a9a0d12ce12fbbb335abc377092c6..f3d1f0a44fe49bdf0c96c3a9393843753929595d 100644 (file)
@@ -161,7 +161,7 @@ public:
 
   MemRegionManager& getRegionManager() { return MRMgr; }
   
-  std::auto_ptr<SubRegionMap> getSubRegionMap(const GRState *state);
+  SubRegionMap* getSubRegionMap(const GRState *state);
   
   const GRState* BindCompoundLiteral(const GRState* St, 
                                      const CompoundLiteralExpr* CL, SVal V);
@@ -303,8 +303,7 @@ StoreManager* clang::CreateRegionStoreManager(GRStateManager& StMgr) {
   return new RegionStoreManager(StMgr);
 }
 
-std::auto_ptr<SubRegionMap>
-RegionStoreManager::getSubRegionMap(const GRState *state) {
+SubRegionMap* RegionStoreManager::getSubRegionMap(const GRState *state) {
   RegionBindingsTy B = GetRegionBindings(state->getStore());
   RegionStoreSubRegionMap *M = new RegionStoreSubRegionMap();
   
@@ -313,7 +312,7 @@ RegionStoreManager::getSubRegionMap(const GRState *state) {
       M->add(R->getSuperRegion(), R);
   }
   
-  return std::auto_ptr<SubRegionMap>(M);
+  return M;
 }
 
 /// getLValueString - Returns an SVal representing the lvalue of a