diff --git a/lib/VMCore/ModuleProvider.cpp b/lib/VMCore/ModuleProvider.cpp new file mode 100644 index 00000000000..52c30cd1311 --- /dev/null +++ b/lib/VMCore/ModuleProvider.cpp @@ -0,0 +1,28 @@ +//===-- ModuleProvider.cpp - Base implementation for module providers -----===// +// +// Minimal implementation of the abstract interface for providing a module. +// +//===----------------------------------------------------------------------===// + +#include "llvm/ModuleProvider.h" +#include "llvm/Module.h" + +/// ctor - always have a valid Module +/// +AbstractModuleProvider::AbstractModuleProvider() { + M = new Module(""); +} + +/// dtor - when we leave, we take our Module with us +/// +AbstractModuleProvider::~AbstractModuleProvider() { + delete M; +} + +/// materializeFunction - make sure the given function is fully read. +/// +void AbstractModuleProvider::materializeModule() { + for (Module::iterator i = M->begin(), e = M->end(); i != e; ++i) { + materializeFunction(i); + } +}