diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-05 19:36:34 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-05 19:36:34 +0000 |
commit | 2b11ad4fe91d06ff82ce4c05571eb84872543cbc (patch) | |
tree | 6973d5c259d498bd0d7fc945c122c3fe2c10b029 /llvm/lib/IR/Module.cpp | |
parent | bbf5c1c96537a878a34cbc5e2c89cff51358928d (diff) | |
download | llvm-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.cpp | 19 |
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) { |