aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Module.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-11-05 19:36:34 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-11-05 19:36:34 +0000
commit2b11ad4fe91d06ff82ce4c05571eb84872543cbc (patch)
tree6973d5c259d498bd0d7fc945c122c3fe2c10b029 /llvm/lib/IR/Module.cpp
parentbbf5c1c96537a878a34cbc5e2c89cff51358928d (diff)
downloadllvm-2b11ad4fe91d06ff82ce4c05571eb84872543cbc.zip
llvm-2b11ad4fe91d06ff82ce4c05571eb84872543cbc.tar.gz
llvm-2b11ad4fe91d06ff82ce4c05571eb84872543cbc.tar.bz2
Use error_code in GVMaterializer.
They just propagate out the bitcode reader error, so we don't need a new enum. llvm-svn: 194091
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
-rw-r--r--llvm/lib/IR/Module.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/llvm/lib/IR/Module.cpp b/llvm/lib/IR/Module.cpp
index 58115ef..3dd1f7e 100644
--- a/llvm/lib/IR/Module.cpp
+++ b/llvm/lib/IR/Module.cpp
@@ -401,9 +401,15 @@ bool Module::isDematerializable(const GlobalValue *GV) const {
}
bool Module::Materialize(GlobalValue *GV, std::string *ErrInfo) {
- if (Materializer)
- return Materializer->Materialize(GV, ErrInfo);
- return false;
+ if (!Materializer)
+ return false;
+
+ error_code EC = Materializer->Materialize(GV);
+ if (!EC)
+ return false;
+ if (ErrInfo)
+ *ErrInfo = EC.message();
+ return true;
}
void Module::Dematerialize(GlobalValue *GV) {
@@ -414,7 +420,12 @@ void Module::Dematerialize(GlobalValue *GV) {
bool Module::MaterializeAll(std::string *ErrInfo) {
if (!Materializer)
return false;
- return Materializer->MaterializeModule(this, ErrInfo);
+ error_code EC = Materializer->MaterializeModule(this);
+ if (!EC)
+ return false;
+ if (ErrInfo)
+ *ErrInfo = EC.message();
+ return true;
}
bool Module::MaterializeAllPermanently(std::string *ErrInfo) {