From 92f3fd2a98bbe69bd066a2ed65e88c312116a246 Mon Sep 17 00:00:00 2001 From: Francis Visoiu Mistrih Date: Thu, 10 Jan 2019 17:36:54 +0000 Subject: [PATCH] [llvm-objdump][MachO] Fix error reporting after r350848 and r350849 llvm-svn: 350851 --- test/tools/llvm-objdump/invalid-input.test | 5 ++--- tools/llvm-objdump/MachODump.cpp | 8 +++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/test/tools/llvm-objdump/invalid-input.test b/test/tools/llvm-objdump/invalid-input.test index 7e6c806cdcd..89ac35202de 100644 --- a/test/tools/llvm-objdump/invalid-input.test +++ b/test/tools/llvm-objdump/invalid-input.test @@ -9,8 +9,7 @@ RUN: not llvm-objdump -macho -disassemble -g -dsym=%s %p/Inputs/bind.macho-x86_6 UNKNOWN_FILE_TYPE_DSYM: {{.*}}llvm-objdump: error: RUN: not llvm-objdump -macho -disassemble -g -dsym=%p/missing-dsym %p/Inputs/bind.macho-x86_64 2>&1 | FileCheck %s -check-prefix=NO_SUCH_FILE_DSYM -NO_SUCH_FILE_DSYM: error: {{.*}}missing-dsym: +NO_SUCH_FILE_DSYM: error: '{{.*}}missing-dsym': RUN: not llvm-objdump -macho -disassemble -g -dsym=%s %p/Inputs/bind.macho-x86_64 2>&1 | FileCheck %s -check-prefix=UNKNOWN_FILE_TYPE_DSYM_MSG -UNKNOWN_FILE_TYPE_DSYM_MSG: {{.*}}llvm-objdump: error: -UNKNOWN_FILE_TYPE_DSYM_MSG-NOT: bind.macho-x86_64 +UNKNOWN_FILE_TYPE_DSYM_MSG: error: '{{.*}}.test' diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp index a8e90dfdde2..397573e2a48 100644 --- a/tools/llvm-objdump/MachODump.cpp +++ b/tools/llvm-objdump/MachODump.cpp @@ -6970,15 +6970,17 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF, ErrorOr> BufOrErr = MemoryBuffer::getFileOrSTDIN(DSYMFile); if (std::error_code EC = BufOrErr.getError()) { - WithColor::error(errs(), "llvm-objdump") - << DSYMFile << ": " << EC.message() << '\n'; + report_error(DSYMFile, errorCodeToError(EC)); return; } + Expected> DbgObjCheck = ObjectFile::createMachOObjectFile(BufOrErr.get()->getMemBufferRef()); - if (Error E = DbgObjCheck.takeError()) + if (Error E = DbgObjCheck.takeError()) { report_error(DSYMFile, std::move(E)); + return; + } DbgObj = DbgObjCheck.get().release(); // We need to keep the file alive, because we're replacing DbgObj with it.