1 //===-- llvm-readobj.h ----------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_TOOLS_LLVM_READOBJ_LLVM_READOBJ_H 11 #define LLVM_TOOLS_LLVM_READOBJ_LLVM_READOBJ_H 12 13 #include "llvm/Support/CommandLine.h" 14 #include "llvm/Support/Compiler.h" 15 #include <string> 16 17 namespace llvm { 18 namespace object { 19 class RelocationRef; 20 } 21 22 // Various helper functions. 23 LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg); 24 void error(std::error_code ec); 25 bool relocAddressLess(object::RelocationRef A, 26 object::RelocationRef B); 27 } // namespace llvm 28 29 namespace opts { 30 extern llvm::cl::list<std::string> InputFilenames; 31 extern llvm::cl::opt<bool> FileHeaders; 32 extern llvm::cl::opt<bool> Sections; 33 extern llvm::cl::opt<bool> SectionRelocations; 34 extern llvm::cl::opt<bool> SectionSymbols; 35 extern llvm::cl::opt<bool> SectionData; 36 extern llvm::cl::opt<bool> Relocations; 37 extern llvm::cl::opt<bool> Symbols; 38 extern llvm::cl::opt<bool> DynamicSymbols; 39 extern llvm::cl::opt<bool> UnwindInfo; 40 extern llvm::cl::opt<bool> ExpandRelocs; 41 extern llvm::cl::opt<bool> CodeView; 42 extern llvm::cl::opt<bool> CodeViewSubsectionBytes; 43 extern llvm::cl::opt<bool> ARMAttributes; 44 extern llvm::cl::opt<bool> MipsPLTGOT; 45 } // namespace opts 46 47 #define LLVM_READOBJ_ENUM_ENT(ns, enum) \ 48 { #enum, ns::enum } 49 50 #endif 51