//===-- COFFImportDumper.cpp - COFF import library dumper -------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// /// /// \file /// \brief This file implements the COFF import library dumper for llvm-readobj. /// //===----------------------------------------------------------------------===// #include "llvm/BinaryFormat/COFF.h" #include "llvm/Object/COFF.h" #include "llvm/Object/COFFImportFile.h" using namespace llvm::object; namespace llvm { void dumpCOFFImportFile(const COFFImportFile *File) { outs() << '\n'; outs() << "File: " << File->getFileName() << "\n"; outs() << "Format: COFF-import-file\n"; const coff_import_header *H = File->getCOFFImportHeader(); switch (H->getType()) { case COFF::IMPORT_CODE: outs() << "Type: code\n"; break; case COFF::IMPORT_DATA: outs() << "Type: data\n"; break; case COFF::IMPORT_CONST: outs() << "Type: const\n"; break; } switch (H->getNameType()) { case COFF::IMPORT_ORDINAL: outs() << "Name type: ordinal\n"; break; case COFF::IMPORT_NAME: outs() << "Name type: name\n"; break; case COFF::IMPORT_NAME_NOPREFIX: outs() << "Name type: noprefix\n"; break; case COFF::IMPORT_NAME_UNDECORATE: outs() << "Name type: undecorate\n"; break; } for (const object::BasicSymbolRef &Sym : File->symbols()) { outs() << "Symbol: "; Sym.printName(outs()); outs() << "\n"; } } } // namespace llvm