From: Francis Visoiu Mistrih Date: Thu, 10 Jan 2019 17:16:42 +0000 (+0000) Subject: [llvm-objdump][MachO] Use the -dsym file name when reporting errors X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=74733b9cac5775d40adf6a3810d9d51f5307403b;p=llvm [llvm-objdump][MachO] Use the -dsym file name when reporting errors Instead of using the binary filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350849 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-objdump/invalid-input.test b/test/tools/llvm-objdump/invalid-input.test index d9bf7399755..7e6c806cdcd 100644 --- a/test/tools/llvm-objdump/invalid-input.test +++ b/test/tools/llvm-objdump/invalid-input.test @@ -7,3 +7,10 @@ UNKNOWN_FILE_TYPE: '{{.*}}invalid-input.test': The file was not recognized as a 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 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: + +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 diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp index 4198ff07ecb..a8e90dfdde2 100644 --- a/tools/llvm-objdump/MachODump.cpp +++ b/tools/llvm-objdump/MachODump.cpp @@ -6971,14 +6971,14 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF, MemoryBuffer::getFileOrSTDIN(DSYMFile); if (std::error_code EC = BufOrErr.getError()) { WithColor::error(errs(), "llvm-objdump") - << Filename << ": " << EC.message() << '\n'; + << DSYMFile << ": " << EC.message() << '\n'; return; } Expected> DbgObjCheck = ObjectFile::createMachOObjectFile(BufOrErr.get()->getMemBufferRef()); if (Error E = DbgObjCheck.takeError()) - report_error(MachOOF->getFileName(), std::move(E)); + report_error(DSYMFile, std::move(E)); DbgObj = DbgObjCheck.get().release(); // We need to keep the file alive, because we're replacing DbgObj with it.