summaryrefslogtreecommitdiffstats
path: root/llvm/tools/lli/lli.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/lli/lli.cpp')
-rw-r--r--llvm/tools/lli/lli.cpp33
1 files changed, 15 insertions, 18 deletions
diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp
index 836a94037d7..ecc90d7541c 100644
--- a/llvm/tools/lli/lli.cpp
+++ b/llvm/tools/lli/lli.cpp
@@ -357,6 +357,12 @@ CodeGenOpt::Level getOptLevel() {
llvm_unreachable("Unrecognized opt level.");
}
+LLVM_ATTRIBUTE_NORETURN
+static void reportError(SMDiagnostic Err, const char *ProgName) {
+ Err.print(ProgName, errs());
+ exit(1);
+}
+
//===----------------------------------------------------------------------===//
// main Driver function
//
@@ -388,20 +394,16 @@ int main(int argc, char **argv, char * const *envp) {
SMDiagnostic Err;
std::unique_ptr<Module> Owner = parseIRFile(InputFile, Err, Context);
Module *Mod = Owner.get();
- if (!Mod) {
- Err.print(argv[0], errs());
- return 1;
- }
+ if (!Mod)
+ reportError(Err, argv[0]);
if (UseJITKind == JITKind::OrcLazy) {
std::vector<std::unique_ptr<Module>> Ms;
Ms.push_back(std::move(Owner));
for (auto &ExtraMod : ExtraModules) {
Ms.push_back(parseIRFile(ExtraMod, Err, Context));
- if (!Ms.back()) {
- Err.print(argv[0], errs());
- return 1;
- }
+ if (!Ms.back())
+ reportError(Err, argv[0]);
}
std::vector<std::string> Args;
Args.push_back(InputFile);
@@ -486,10 +488,8 @@ int main(int argc, char **argv, char * const *envp) {
// Load any additional modules specified on the command line.
for (unsigned i = 0, e = ExtraModules.size(); i != e; ++i) {
std::unique_ptr<Module> XMod = parseIRFile(ExtraModules[i], Err, Context);
- if (!XMod) {
- Err.print(argv[0], errs());
- return 1;
- }
+ if (!XMod)
+ reportError(Err, argv[0]);
if (EnableCacheManager) {
std::string CacheName("file:");
CacheName.append(ExtraModules[i]);
@@ -504,8 +504,7 @@ int main(int argc, char **argv, char * const *envp) {
if (!Obj) {
// TODO: Actually report errors helpfully.
consumeError(Obj.takeError());
- Err.print(argv[0], errs());
- return 1;
+ reportError(Err, argv[0]);
}
object::OwningBinary<object::ObjectFile> &O = Obj.get();
EE->addObjectFile(std::move(O));
@@ -514,10 +513,8 @@ int main(int argc, char **argv, char * const *envp) {
for (unsigned i = 0, e = ExtraArchives.size(); i != e; ++i) {
ErrorOr<std::unique_ptr<MemoryBuffer>> ArBufOrErr =
MemoryBuffer::getFileOrSTDIN(ExtraArchives[i]);
- if (!ArBufOrErr) {
- Err.print(argv[0], errs());
- return 1;
- }
+ if (!ArBufOrErr)
+ reportError(Err, argv[0]);
std::unique_ptr<MemoryBuffer> &ArBuf = ArBufOrErr.get();
Expected<std::unique_ptr<object::Archive>> ArOrErr =
OpenPOWER on IntegriCloud