llvm-reduce: Fix crashing on file opening error for mir path
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 22 Apr 2022 21:40:25 +0000 (17:40 -0400)
committerMatt Arsenault <arsenm2@gmail.com>
Wed, 27 Apr 2022 22:15:12 +0000 (18:15 -0400)
llvm/test/tools/llvm-reduce/mir/input-file-does-not-exist.mir [new file with mode: 0644]
llvm/tools/llvm-reduce/ReducerWorkItem.cpp

diff --git a/llvm/test/tools/llvm-reduce/mir/input-file-does-not-exist.mir b/llvm/test/tools/llvm-reduce/mir/input-file-does-not-exist.mir
new file mode 100644 (file)
index 0000000..3f70ff0
--- /dev/null
@@ -0,0 +1,4 @@
+# REQUIRES: amdgpu-registered-target
+# RUN: not llvm-reduce -mtriple=amdgcn-amd-amdhsa --test FileCheck --test-arg %s --test-arg --input-file does-not-exist.mir 2>&1 | FileCheck -check-prefix=ERR %s
+
+# ERR: {{.*}}llvm-reduce{{.*}}: No such file or directory
index d77fe02..ce2068d 100644 (file)
@@ -300,6 +300,11 @@ parseReducerWorkItem(const char *ToolName, StringRef Filename,
 
   if (IsMIR) {
     auto FileOrErr = MemoryBuffer::getFileOrSTDIN(Filename, /*IsText=*/true);
+    if (std::error_code EC = FileOrErr.getError()) {
+      WithColor::error(errs(), ToolName) << EC.message() << '\n';
+      return nullptr;
+    }
+
     std::unique_ptr<MIRParser> MParser =
         createMIRParser(std::move(FileOrErr.get()), Ctxt);