summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-01-14 23:02:01 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-01-14 23:02:01 +0000
commit06a3bddb362ecfc5f3d9ad96301d9b61ef18b552 (patch)
tree403e925ba33a1301331b72a3b0ccad8bd0ff2ea2
parent70aa0556d4c4d6562765a54efddcc1f34f564705 (diff)
downloadllvm-06a3bddb362ecfc5f3d9ad96301d9b61ef18b552.tar.gz
llvm-06a3bddb362ecfc5f3d9ad96301d9b61ef18b552.tar.bz2
llvm-06a3bddb362ecfc5f3d9ad96301d9b61ef18b552.tar.xz
Use error_code in Module::materializeAll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199269 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/IR/Module.h8
-rw-r--r--lib/IR/Module.cpp16
2 files changed, 10 insertions, 14 deletions
diff --git a/include/llvm/IR/Module.h b/include/llvm/IR/Module.h
index 822b8a4565..4bfa9e68aa 100644
--- a/include/llvm/IR/Module.h
+++ b/include/llvm/IR/Module.h
@@ -22,6 +22,7 @@
#include "llvm/IR/Metadata.h"
#include "llvm/Support/CBindingWrapping.h"
#include "llvm/Support/DataTypes.h"
+#include "llvm/Support/system_error.h"
namespace llvm {
@@ -450,11 +451,8 @@ public:
/// materialized lazily. If !isDematerializable(), this method is a noop.
void Dematerialize(GlobalValue *GV);
- /// MaterializeAll - Make sure all GlobalValues in this Module are fully read.
- /// If the module is corrupt, this returns true and fills in the optional
- /// string with information about the problem. If successful, this returns
- /// false.
- bool MaterializeAll(std::string *ErrInfo = 0);
+ /// Make sure all GlobalValues in this Module are fully read.
+ error_code materializeAll();
/// MaterializeAllPermanently - Make sure all GlobalValues in this Module are
/// fully read and clear the Materializer. If the module is corrupt, this
diff --git a/lib/IR/Module.cpp b/lib/IR/Module.cpp
index 996c5b67a4..06eea7e388 100644
--- a/lib/IR/Module.cpp
+++ b/lib/IR/Module.cpp
@@ -377,20 +377,18 @@ void Module::Dematerialize(GlobalValue *GV) {
return Materializer->Dematerialize(GV);
}
-bool Module::MaterializeAll(std::string *ErrInfo) {
+error_code Module::materializeAll() {
if (!Materializer)
- return false;
- error_code EC = Materializer->MaterializeModule(this);
- if (!EC)
- return false;
- if (ErrInfo)
- *ErrInfo = EC.message();
- return true;
+ return error_code::success();
+ return Materializer->MaterializeModule(this);
}
bool Module::MaterializeAllPermanently(std::string *ErrInfo) {
- if (MaterializeAll(ErrInfo))
+ if (error_code EC = materializeAll()) {
+ if (ErrInfo)
+ *ErrInfo = EC.message();
return true;
+ }
Materializer.reset();
return false;
}