diff options
author | Rui Ueyama <ruiu@google.com> | 2015-08-28 07:40:30 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-08-28 07:40:30 +0000 |
commit | 71ba9bdd2396f6c5e7f16d43c189bf6f77f81b6b (patch) | |
tree | f8bba79834af09928082c52558153512d12f4ae1 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | 5528da76ef8419ea509cccc87b35e035ef65f9fb (diff) | |
download | bcm5719-llvm-71ba9bdd2396f6c5e7f16d43c189bf6f77f81b6b.tar.gz bcm5719-llvm-71ba9bdd2396f6c5e7f16d43c189bf6f77f81b6b.zip |
Re-apply r246276 - Object: Teach llvm-ar to create symbol table for COFF short import files
This patch includes a fix for a llvm-readobj test. With this patch,
the tool does no longer print out COFF headers for the short import
file, but that's probably desirable because the header for the short
import file is dummy.
llvm-svn: 246283
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index d41dcc3ab4f..72844bc33a6 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -24,6 +24,7 @@ #include "ObjDumper.h" #include "StreamWriter.h" #include "llvm/Object/Archive.h" +#include "llvm/Object/COFFImportFile.h" #include "llvm/Object/ELFObjectFile.h" #include "llvm/Object/MachOUniversal.h" #include "llvm/Object/ObjectFile.h" @@ -330,6 +331,12 @@ static void dumpObject(const ObjectFile *Obj) { Dumper->printStackMap(); } +static void dumpCOFFImportFile(const COFFImportFile *File) { + outs() << '\n'; + outs() << "File: " << File->getFileName() << "\n"; + outs() << "Format: COFF-import-file\n"; +} + /// @brief Dumps each object file in \a Arc; static void dumpArchive(const Archive *Arc) { for (const auto &Child : Arc->children()) { @@ -384,6 +391,8 @@ static void dumpInput(StringRef File) { dumpMachOUniversalBinary(UBinary); else if (ObjectFile *Obj = dyn_cast<ObjectFile>(&Binary)) dumpObject(Obj); + else if (COFFImportFile *Import = dyn_cast<COFFImportFile>(&Binary)) + dumpCOFFImportFile(Import); else reportError(File, readobj_error::unrecognized_file_format); } |