diff options
author | James Henderson <jh7370@my.bristol.ac.uk> | 2019-08-09 12:30:08 +0000 |
---|---|---|
committer | James Henderson <jh7370@my.bristol.ac.uk> | 2019-08-09 12:30:08 +0000 |
commit | be39e398e98da62a3e88e480a5f2db54eaaa6175 (patch) | |
tree | 36265c8c72f56d0c501ffac2c7046e9b0a4df342 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | 1429b7ed9e106d8e281ba83fd8bd6a7c0fbefd0d (diff) | |
download | llvm-be39e398e98da62a3e88e480a5f2db54eaaa6175.zip llvm-be39e398e98da62a3e88e480a5f2db54eaaa6175.tar.gz llvm-be39e398e98da62a3e88e480a5f2db54eaaa6175.tar.bz2 |
[llvm-readelf]Print filename for multiple inputs and fix formatting regression
This patch addresses two closely related bugs:
https://bugs.llvm.org/show_bug.cgi?id=42930 and
https://bugs.llvm.org/show_bug.cgi?id=42931.
GNU readelf prints the file name for every input unless there is only
one input and that input is not an archive. This patch adds the printing
for multiple inputs. A previous change did it for archives, but
introduced a regression with GNU compatibility for single-output
formatting, resulting in a spurious initial blank line. This is fixed in
this patch too.
Reviewed by: grimar, MaskRay
Differential Revision: https://reviews.llvm.org/D65953
llvm-svn: 368435
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index f607490..63750a6 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -484,17 +484,17 @@ static void dumpObject(const ObjectFile *Obj, ScopedPrinter &Writer, if (std::error_code EC = createDumper(Obj, Writer, Dumper)) reportError(FileStr, EC); - Writer.startLine() << "\n"; - if (opts::Output == opts::LLVM) { + if (opts::Output == opts::LLVM || opts::InputFilenames.size() > 1 || A) { + Writer.startLine() << "\n"; Writer.printString("File", FileStr); + } + if (opts::Output == opts::LLVM) { Writer.printString("Format", Obj->getFileFormatName()); Writer.printString("Arch", Triple::getArchTypeName( (llvm::Triple::ArchType)Obj->getArch())); Writer.printString("AddressSize", formatv("{0}bit", 8 * Obj->getBytesInAddress())); Dumper->printLoadName(); - } else if (opts::Output == opts::GNU && A) { - Writer.printString("File", FileStr); } if (opts::FileHeaders) |