diff options
author | Sam Clegg <sbc@chromium.org> | 2018-01-10 00:14:19 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2018-01-10 00:14:19 +0000 |
commit | 88e9a15b802e141232e962836828470b4ae402d6 (patch) | |
tree | 791bb5968d6bf122f4030eef08b6dca845548c71 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | 9510447a6669718794f82bfa785d9b62bb6bd5ca (diff) | |
download | bcm5719-llvm-88e9a15b802e141232e962836828470b4ae402d6.tar.gz bcm5719-llvm-88e9a15b802e141232e962836828470b4ae402d6.zip |
[llvm-readobj] Consistent use of ScopedPrinter
There were a few places where outs() was being used
directly rather than the ScopedPrinter object.
Differential Revision: https://reviews.llvm.org/D41370
llvm-svn: 322141
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index c076582794f..5b7b227aa36 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -34,6 +34,7 @@ #include "llvm/Support/DataTypes.h" #include "llvm/Support/Debug.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/FormatVariadic.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Path.h" #include "llvm/Support/PrettyStackTrace.h" @@ -375,19 +376,19 @@ static std::error_code createDumper(const ObjectFile *Obj, } /// @brief Dumps the specified object file. -static void dumpObject(const ObjectFile *Obj) { - ScopedPrinter Writer(outs()); +static void dumpObject(const ObjectFile *Obj, ScopedPrinter &Writer) { std::unique_ptr<ObjDumper> Dumper; if (std::error_code EC = createDumper(Obj, Writer, Dumper)) reportError(Obj->getFileName(), EC); if (opts::Output == opts::LLVM) { - outs() << '\n'; - outs() << "File: " << Obj->getFileName() << "\n"; - outs() << "Format: " << Obj->getFileFormatName() << "\n"; - outs() << "Arch: " << Triple::getArchTypeName( - (llvm::Triple::ArchType)Obj->getArch()) << "\n"; - outs() << "AddressSize: " << (8 * Obj->getBytesInAddress()) << "bit\n"; + Writer.startLine() << "\n"; + Writer.printString("File", Obj->getFileName()); + 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(); } @@ -477,7 +478,7 @@ static void dumpObject(const ObjectFile *Obj) { } /// @brief Dumps each object file in \a Arc; -static void dumpArchive(const Archive *Arc) { +static void dumpArchive(const Archive *Arc, ScopedPrinter &Writer) { Error Err = Error::success(); for (auto &Child : Arc->children(Err)) { Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary(); @@ -488,9 +489,9 @@ static void dumpArchive(const Archive *Arc) { continue; } if (ObjectFile *Obj = dyn_cast<ObjectFile>(&*ChildOrErr.get())) - dumpObject(Obj); + dumpObject(Obj, Writer); else if (COFFImportFile *Imp = dyn_cast<COFFImportFile>(&*ChildOrErr.get())) - dumpCOFFImportFile(Imp); + dumpCOFFImportFile(Imp, Writer); else reportError(Arc->getFileName(), readobj_error::unrecognized_file_format); } @@ -499,16 +500,17 @@ static void dumpArchive(const Archive *Arc) { } /// @brief Dumps each object file in \a MachO Universal Binary; -static void dumpMachOUniversalBinary(const MachOUniversalBinary *UBinary) { +static void dumpMachOUniversalBinary(const MachOUniversalBinary *UBinary, + ScopedPrinter &Writer) { for (const MachOUniversalBinary::ObjectForArch &Obj : UBinary->objects()) { Expected<std::unique_ptr<MachOObjectFile>> ObjOrErr = Obj.getAsObjectFile(); if (ObjOrErr) - dumpObject(&*ObjOrErr.get()); + dumpObject(&*ObjOrErr.get(), Writer); else if (auto E = isNotObjectErrorInvalidFileType(ObjOrErr.takeError())) { reportError(UBinary->getFileName(), ObjOrErr.takeError()); } else if (Expected<std::unique_ptr<Archive>> AOrErr = Obj.getAsArchive()) - dumpArchive(&*AOrErr.get()); + dumpArchive(&*AOrErr.get(), Writer); } } @@ -523,6 +525,7 @@ static void dumpWindowsResourceFile(WindowsResource *WinRes) { /// @brief Opens \a File and dumps it. static void dumpInput(StringRef File) { + ScopedPrinter Writer(outs()); // Attempt to open the binary. Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(File); @@ -531,14 +534,14 @@ static void dumpInput(StringRef File) { Binary &Binary = *BinaryOrErr.get().getBinary(); if (Archive *Arc = dyn_cast<Archive>(&Binary)) - dumpArchive(Arc); + dumpArchive(Arc, Writer); else if (MachOUniversalBinary *UBinary = dyn_cast<MachOUniversalBinary>(&Binary)) - dumpMachOUniversalBinary(UBinary); + dumpMachOUniversalBinary(UBinary, Writer); else if (ObjectFile *Obj = dyn_cast<ObjectFile>(&Binary)) - dumpObject(Obj); + dumpObject(Obj, Writer); else if (COFFImportFile *Import = dyn_cast<COFFImportFile>(&Binary)) - dumpCOFFImportFile(Import); + dumpCOFFImportFile(Import, Writer); else if (WindowsResource *WinRes = dyn_cast<WindowsResource>(&Binary)) dumpWindowsResourceFile(WinRes); else |