Minimal implementation of the abstract ModuleProvider interface.
authorMisha Brukman <brukman+llvm@gmail.com>
Thu, 18 Sep 2003 16:17:06 +0000 (16:17 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Thu, 18 Sep 2003 16:17:06 +0000 (16:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8594 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/ModuleProvider.cpp [new file with mode: 0644]

diff --git a/lib/VMCore/ModuleProvider.cpp b/lib/VMCore/ModuleProvider.cpp
new file mode 100644 (file)
index 0000000..52c30cd
--- /dev/null
@@ -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);
+  }
+}