unique_ptrify the result of ConstraintManagerCreator and StoreManagerCreator
llvm-svn: 217206
This commit is contained in:
parent
91e7902622
commit
7c35f6194f
|
@ -148,8 +148,9 @@ protected:
|
|||
virtual ConditionTruthVal checkNull(ProgramStateRef State, SymbolRef Sym);
|
||||
};
|
||||
|
||||
ConstraintManager* CreateRangeConstraintManager(ProgramStateManager& statemgr,
|
||||
SubEngine *subengine);
|
||||
std::unique_ptr<ConstraintManager>
|
||||
CreateRangeConstraintManager(ProgramStateManager &statemgr,
|
||||
SubEngine *subengine);
|
||||
|
||||
} // end GR namespace
|
||||
|
||||
|
|
|
@ -39,9 +39,10 @@ namespace ento {
|
|||
class CallEvent;
|
||||
class CallEventManager;
|
||||
|
||||
typedef ConstraintManager* (*ConstraintManagerCreator)(ProgramStateManager&,
|
||||
SubEngine*);
|
||||
typedef StoreManager* (*StoreManagerCreator)(ProgramStateManager&);
|
||||
typedef std::unique_ptr<ConstraintManager>(*ConstraintManagerCreator)(
|
||||
ProgramStateManager &, SubEngine *);
|
||||
typedef std::unique_ptr<StoreManager>(*StoreManagerCreator)(
|
||||
ProgramStateManager &);
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ProgramStateTrait - Traits used by the Generic Data Map of a ProgramState.
|
||||
|
|
|
@ -276,8 +276,10 @@ inline StoreRef &StoreRef::operator=(StoreRef const &newStore) {
|
|||
}
|
||||
|
||||
// FIXME: Do we need to pass ProgramStateManager anymore?
|
||||
StoreManager *CreateRegionStoreManager(ProgramStateManager& StMgr);
|
||||
StoreManager *CreateFieldsOnlyRegionStoreManager(ProgramStateManager& StMgr);
|
||||
std::unique_ptr<StoreManager>
|
||||
CreateRegionStoreManager(ProgramStateManager &StMgr);
|
||||
std::unique_ptr<StoreManager>
|
||||
CreateFieldsOnlyRegionStoreManager(ProgramStateManager &StMgr);
|
||||
|
||||
} // end GR namespace
|
||||
|
||||
|
|
|
@ -75,8 +75,8 @@ ProgramStateManager::ProgramStateManager(ASTContext &Ctx,
|
|||
: Eng(SubEng), EnvMgr(alloc), GDMFactory(alloc),
|
||||
svalBuilder(createSimpleSValBuilder(alloc, Ctx, *this)),
|
||||
CallEventMgr(new CallEventManager(alloc)), Alloc(alloc) {
|
||||
StoreMgr.reset((*CreateSMgr)(*this));
|
||||
ConstraintMgr.reset((*CreateCMgr)(*this, SubEng));
|
||||
StoreMgr = (*CreateSMgr)(*this);
|
||||
ConstraintMgr = (*CreateCMgr)(*this, SubEng);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -328,9 +328,9 @@ private:
|
|||
|
||||
} // end anonymous namespace
|
||||
|
||||
ConstraintManager *
|
||||
std::unique_ptr<ConstraintManager>
|
||||
ento::CreateRangeConstraintManager(ProgramStateManager &StMgr, SubEngine *Eng) {
|
||||
return new RangeConstraintManager(Eng, StMgr.getSValBuilder());
|
||||
return llvm::make_unique<RangeConstraintManager>(Eng, StMgr.getSValBuilder());
|
||||
}
|
||||
|
||||
const llvm::APSInt* RangeConstraintManager::getSymVal(ProgramStateRef St,
|
||||
|
|
|
@ -609,16 +609,17 @@ public: // Part of public interface to class.
|
|||
// RegionStore creation.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
StoreManager *ento::CreateRegionStoreManager(ProgramStateManager& StMgr) {
|
||||
std::unique_ptr<StoreManager>
|
||||
ento::CreateRegionStoreManager(ProgramStateManager &StMgr) {
|
||||
RegionStoreFeatures F = maximal_features_tag();
|
||||
return new RegionStoreManager(StMgr, F);
|
||||
return llvm::make_unique<RegionStoreManager>(StMgr, F);
|
||||
}
|
||||
|
||||
StoreManager *
|
||||
std::unique_ptr<StoreManager>
|
||||
ento::CreateFieldsOnlyRegionStoreManager(ProgramStateManager &StMgr) {
|
||||
RegionStoreFeatures F = minimal_features_tag();
|
||||
F.enableFields(true);
|
||||
return new RegionStoreManager(StMgr, F);
|
||||
return llvm::make_unique<RegionStoreManager>(StMgr, F);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue