From e39e9d339c94cb7f421403a2980998b4a4b6a1a1 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 22 Apr 2022 17:40:25 -0400 Subject: [PATCH] llvm-reduce: Fix crashing on file opening error for mir path --- llvm/test/tools/llvm-reduce/mir/input-file-does-not-exist.mir | 4 ++++ llvm/tools/llvm-reduce/ReducerWorkItem.cpp | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 llvm/test/tools/llvm-reduce/mir/input-file-does-not-exist.mir 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 index 0000000..3f70ff0 --- /dev/null +++ b/llvm/test/tools/llvm-reduce/mir/input-file-does-not-exist.mir @@ -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 diff --git a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp index d77fe02..ce2068d 100644 --- a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp +++ b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp @@ -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 MParser = createMIRParser(std::move(FileOrErr.get()), Ctxt); -- 2.7.4