From 71ba9bdd2396f6c5e7f16d43c189bf6f77f81b6b Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Fri, 28 Aug 2015 07:40:30 +0000 Subject: 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 --- llvm/tools/llvm-readobj/llvm-readobj.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/tools/llvm-readobj') 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(&Binary)) dumpObject(Obj); + else if (COFFImportFile *Import = dyn_cast(&Binary)) + dumpCOFFImportFile(Import); else reportError(File, readobj_error::unrecognized_file_format); } -- cgit v1.2.3