summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-08-28 07:40:30 +0000
committerRui Ueyama <ruiu@google.com>2015-08-28 07:40:30 +0000
commit71ba9bdd2396f6c5e7f16d43c189bf6f77f81b6b (patch)
treef8bba79834af09928082c52558153512d12f4ae1 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent5528da76ef8419ea509cccc87b35e035ef65f9fb (diff)
downloadbcm5719-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.cpp9
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);
}
OpenPOWER on IntegriCloud