aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorJames Henderson <jh7370@my.bristol.ac.uk>2019-08-09 12:30:08 +0000
committerJames Henderson <jh7370@my.bristol.ac.uk>2019-08-09 12:30:08 +0000
commitbe39e398e98da62a3e88e480a5f2db54eaaa6175 (patch)
tree36265c8c72f56d0c501ffac2c7046e9b0a4df342 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent1429b7ed9e106d8e281ba83fd8bd6a7c0fbefd0d (diff)
downloadllvm-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.cpp8
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)