LLVM 22.0.0git
llvm::object Namespace Reference

Namespaces

namespace  detail
namespace  DirectX

Classes

class  AbstractArchiveMemberHeader
class  Archive
class  ArchiveMemberHeader
class  Arm64XRelocRef
class  BaseRelocRef
class  BasicSymbolRef
 This is a value type class that represents a single symbol in the list of symbols in the object file. More...
struct  BBAddrMap
class  BigArchive
class  BigArchiveMemberHeader
struct  BigArMemHdrType
class  Binary
class  BinaryError
 Base class for all errors indicating malformed binary files. More...
class  BindRebaseSegInfo
class  BuildIDFetcher
 BuildIDFetcher searches local cache directories for debug info. More...
struct  CFileLanguageIdAndTypeIdType
struct  ChainedFixupsSegment
struct  ChainedFixupTarget
 ChainedFixupTarget holds all the information about an external symbol necessary to bind this binary to that symbol. More...
struct  chpe_code_range_entry
struct  chpe_range_entry
struct  chpe_redirection_entry
struct  coff_aux_bf_and_ef_symbol
struct  coff_aux_clr_token
struct  coff_aux_function_definition
struct  coff_aux_section_definition
struct  coff_aux_weak_external
struct  coff_base_reloc_block_entry
struct  coff_base_reloc_block_header
struct  coff_bigobj_file_header
struct  coff_dynamic_reloc_table
struct  coff_dynamic_relocation32
struct  coff_dynamic_relocation32_v2
struct  coff_dynamic_relocation64
struct  coff_dynamic_relocation64_v2
struct  coff_file_header
struct  coff_import_directory_table_entry
struct  coff_import_header
struct  coff_load_config_code_integrity
struct  coff_load_configuration32
 32-bit load config (IMAGE_LOAD_CONFIG_DIRECTORY32) More...
struct  coff_load_configuration64
 64-bit load config (IMAGE_LOAD_CONFIG_DIRECTORY64) More...
struct  coff_relocation
struct  coff_resource_data_entry
struct  coff_resource_dir_entry
struct  coff_resource_dir_table
struct  coff_runtime_function_x64
struct  coff_section
struct  coff_symbol
struct  coff_symbol_generic
struct  coff_tls_directory
class  COFFImportFile
struct  COFFModuleDefinition
class  COFFObjectFile
struct  COFFShortExport
class  COFFSymbolRef
class  CommonArchiveMemberHeader
class  CompressedOffloadBundle
class  content_iterator
struct  data_directory
union  DataRefImpl
struct  DataRegion
struct  debug_directory
struct  debug_h_header
class  Decompressor
 Decompressor helps to handle decompression of compressed sections. More...
struct  delay_import_directory_table_entry
class  DelayImportDirectoryEntryRef
class  DiceRef
 DiceRef - This is a value type class that represents a single data in code entry in the table in a Mach-O object file. More...
struct  dos_header
 The DOS compatible header at the front of all PE/COFF executables. More...
class  DXContainer
class  DXContainerObjectFile
class  DynamicRelocRef
struct  Elf_CGProfile_Impl
struct  Elf_Chdr_Impl
struct  Elf_Chdr_Impl< ELFType< Endianness, false > >
struct  Elf_Chdr_Impl< ELFType< Endianness, true > >
struct  Elf_Crel_Impl
struct  Elf_Dyn_Base
 Elf_Dyn_Base: This structure matches the form of entries in the dynamic table section (.dynamic) look like. More...
struct  Elf_Dyn_Base< ELFType< Endianness, false > >
struct  Elf_Dyn_Base< ELFType< Endianness, true > >
struct  Elf_Dyn_Impl
 Elf_Dyn_Impl: This inherits from Elf_Dyn_Base, adding getters. More...
struct  Elf_Ehdr_Impl
struct  Elf_GnuHash_Impl
struct  Elf_Hash_Impl
struct  Elf_Mips_ABIFlags
struct  Elf_Mips_Options
struct  Elf_Mips_RegInfo
struct  Elf_Mips_RegInfo< ELFType< Endianness, false > >
struct  Elf_Mips_RegInfo< ELFType< Endianness, true > >
struct  Elf_Nhdr_Impl
 Note header. More...
class  Elf_Note_Impl
 An ELF note. More...
class  Elf_Note_Iterator_Impl
struct  Elf_Phdr_Impl
struct  Elf_Phdr_Impl< ELFType< Endianness, false > >
struct  Elf_Phdr_Impl< ELFType< Endianness, true > >
struct  Elf_Rel_Impl
struct  Elf_Rel_Impl< ELFType< Endianness, false >, false >
struct  Elf_Rel_Impl< ELFType< Endianness, false >, true >
struct  Elf_Rel_Impl< ELFType< Endianness, true >, false >
struct  Elf_Rel_Impl< ELFType< Endianness, true >, true >
class  elf_relocation_iterator
class  elf_section_iterator
struct  Elf_Shdr_Base
struct  Elf_Shdr_Base< ELFType< Endianness, false > >
struct  Elf_Shdr_Base< ELFType< Endianness, true > >
struct  Elf_Shdr_Impl
struct  Elf_Sym_Base
struct  Elf_Sym_Base< ELFType< Endianness, false > >
struct  Elf_Sym_Base< ELFType< Endianness, true > >
struct  Elf_Sym_Impl
class  elf_symbol_iterator
struct  Elf_Verdaux_Impl
 Elf_Verdaux: This is the structure of auxiliary data in the SHT_GNU_verdef section (.gnu.version_d). More...
struct  Elf_Verdef_Impl
 Elf_Verdef: This is the structure of entries in the SHT_GNU_verdef section (.gnu.version_d). More...
struct  Elf_Vernaux_Impl
 Elf_Vernaux: This is the structure of auxiliary data in SHT_GNU_verneed section (.gnu.version_r). More...
struct  Elf_Verneed_Impl
 Elf_Verneed: This is the structure of entries in the SHT_GNU_verneed section (.gnu.version_r). More...
struct  Elf_Versym_Impl
 Elf_Versym: This is the structure of entries in the SHT_GNU_versym section (.gnu.version). More...
class  ELFFile
class  ELFObjectFile
class  ELFObjectFileBase
struct  ELFPltEntry
class  ELFRelocationRef
class  ELFSectionRef
class  ELFSymbolRef
struct  ELFType
class  EmptyResError
class  ENDRecord
class  ESDRecord
struct  ExceptionSectionEntry
union  export_address_table_entry
struct  export_directory_table_entry
class  ExportDirectoryEntryRef
class  ExportEntry
 ExportEntry encapsulates the current-state-of-the-walk used when doing a non-recursive walk of the trie data structure. More...
struct  FpoData
class  GenericBinaryError
 Generic binary error. More...
class  GOFFObjectFile
class  GOFFSymbolRef
class  HDRRecord
struct  import_lookup_table_entry
class  ImportDirectoryEntryRef
class  ImportedSymbolRef
class  IRObjectFile
struct  IRSymtabFile
 The contents of a bitcode file and its irsymtab. More...
class  Lexer
struct  LoaderSectionHeader32
struct  LoaderSectionHeader64
struct  LoaderSectionRelocationEntry32
struct  LoaderSectionRelocationEntry64
struct  LoaderSectionSymbolEntry32
struct  LoaderSectionSymbolEntry64
class  MachOAbstractFixupEntry
 MachOAbstractFixupEntry is an abstract class representing a fixup in a MH_DYLDLINK file. More...
class  MachOBindEntry
 MachOBindEntry encapsulates the current state in the decompression of binding opcodes. More...
class  MachOChainedFixupEntry
class  MachOObjectFile
class  MachORebaseEntry
 MachORebaseEntry encapsulates the current state in the decompression of rebasing opcodes. More...
class  MachOUniversalBinary
class  MinidumpFile
 A class providing access to the contents of a minidump file. More...
class  ObjectFile
 This class is the base class for all object file types. More...
class  OffloadBinary
 A simple binary serialization of an offloading file. More...
struct  OffloadBundleEntry
 Bundle entry in binary clang-offload-bundler format. More...
class  OffloadBundleFatBin
 Fat binary embedded in object files in clang-offload-bundler format. More...
struct  OffloadBundleURI
class  OffloadFile
 A class to contain the binary information for a single OffloadBinary that owns its memory. More...
class  OwningBinary
class  Parser
struct  pe32_header
 The 32-bit PE header that follows the COFF header. More...
struct  pe32plus_header
 The 64-bit PE header that follows the COFF header. More...
struct  PGOAnalysisMap
 A feature extension of BBAddrMap that holds information relevant to PGO. More...
class  Record
 Represents a GOFF physical record. More...
class  RelocationRef
 This is a value type class that represents a single relocation in the list of relocations in the object file. More...
class  ResourceEntryRef
class  ResourceSectionRef
struct  SectionedAddress
class  SectionFilter
 Creates an iterator range of SectionFilterIterators for a given Object and predicate. More...
class  SectionFilterIterator
 A filtered iterator for SectionRefs that skips sections based on some given predicate. More...
class  SectionRef
 This is a value type class that represents a single section in the list of sections in the object file. More...
class  SectionStrippedError
class  SFrameParser
class  Slice
struct  StringTableOffset
class  symbol_iterator
class  SymbolicFile
class  SymbolRef
 This is a value type class that represents a single symbol in the list of symbols in the object file. More...
struct  SymEntry
class  TapiFile
class  TapiUniversal
class  TBVectorExt
struct  Token
class  TXTRecord
struct  UnixArMemHdrType
struct  VerdAux
struct  VerDef
struct  VernAux
struct  VerNeed
struct  VersionEntry
struct  ViewArray
class  WasmObjectFile
struct  WasmSection
class  WasmSectionOrderChecker
struct  WasmSegment
class  WasmSymbol
class  WindowsResource
class  WindowsResourceCOFFWriter
class  WindowsResourceParser
struct  WinResHeaderPrefix
struct  WinResHeaderSuffix
struct  WinResIDs
class  xcoff_symbol_iterator
struct  XCOFFAuxiliaryHeader
struct  XCOFFAuxiliaryHeader32
struct  XCOFFAuxiliaryHeader64
struct  XCOFFBlockAuxEnt32
struct  XCOFFBlockAuxEnt64
struct  XCOFFCsectAuxEnt32
struct  XCOFFCsectAuxEnt64
class  XCOFFCsectAuxRef
struct  XCOFFExceptionAuxEnt
struct  XCOFFFileAuxEnt
struct  XCOFFFileHeader32
struct  XCOFFFileHeader64
struct  XCOFFFunctionAuxEnt32
struct  XCOFFFunctionAuxEnt64
class  XCOFFObjectFile
struct  XCOFFRelocation
struct  XCOFFRelocation32
struct  XCOFFRelocation64
struct  XCOFFSectAuxEntForDWARF32
struct  XCOFFSectAuxEntForDWARF64
struct  XCOFFSectAuxEntForStat
struct  XCOFFSectionHeader
struct  XCOFFSectionHeader32
struct  XCOFFSectionHeader64
struct  XCOFFStringTable
struct  XCOFFSymbolEntry32
struct  XCOFFSymbolEntry64
class  XCOFFSymbolRef
class  XCOFFTracebackTable
 This class provides methods to extract traceback table data from a buffer. More...

Typedefs

typedef SmallVector< uint8_t, 10 > BuildID
 A build ID in binary form.
typedef ArrayRef< uint8_tBuildIDRef
 A reference to a BuildID in binary form.
using import_directory_iterator = content_iterator<ImportDirectoryEntryRef>
using delay_import_directory_iterator
using export_directory_iterator = content_iterator<ExportDirectoryEntryRef>
using imported_symbol_iterator = content_iterator<ImportedSymbolRef>
using base_reloc_iterator = content_iterator<BaseRelocRef>
using dynamic_reloc_iterator = content_iterator<DynamicRelocRef>
using arm64x_reloc_iterator = content_iterator<Arm64XRelocRef>
using import_lookup_table_entry32
using import_lookup_table_entry64
using export_name_pointer_table_entry = support::ulittle32_t
using export_ordinal_table_entry = support::ulittle16_t
using coff_symbol16 = coff_symbol<support::ulittle16_t>
using coff_symbol32 = coff_symbol<support::ulittle32_t>
using coff_tls_directory32 = coff_tls_directory<support::little32_t>
using coff_tls_directory64 = coff_tls_directory<support::little64_t>
using ELF32LEFile = ELFFile<ELF32LE>
using ELF64LEFile = ELFFile<ELF64LE>
using ELF32BEFile = ELFFile<ELF32BE>
using ELF64BEFile = ELFFile<ELF64BE>
using ELF32LEObjectFile = ELFObjectFile<ELF32LE>
using ELF64LEObjectFile = ELFObjectFile<ELF64LE>
using ELF32BEObjectFile = ELFObjectFile<ELF32BE>
using ELF64BEObjectFile = ELFObjectFile<ELF64BE>
using ELF32LE = ELFType<llvm::endianness::little, false>
using ELF32BE = ELFType<llvm::endianness::big, false>
using ELF64LE = ELFType<llvm::endianness::little, true>
using ELF64BE = ELFType<llvm::endianness::big, true>
using dice_iterator = content_iterator<DiceRef>
using export_iterator = content_iterator<ExportEntry>
using rebase_iterator = content_iterator<MachORebaseEntry>
using bind_iterator = content_iterator<MachOBindEntry>
using fixup_iterator = content_iterator<MachOChainedFixupEntry>
using section_iterator = content_iterator<SectionRef>
typedef std::function< bool(const SectionRef &)> SectionFilterPredicate
using relocation_iterator = content_iterator<RelocationRef>
using SupportsRelocation = bool (*)(uint64_t)
using RelocationResolver
using basic_symbol_iterator = content_iterator<BasicSymbolRef>
typedef ExceptionSectionEntry< support::ubig32_tExceptionSectionEntry32
typedef ExceptionSectionEntry< support::ubig64_tExceptionSectionEntry64

Enumerations

enum class  frame_type : uint16_t { Fpo = 0 , Trap = 1 , Tss = 2 , NonFpo = 3 }
enum  chpe_range_type { Arm64 = 0 , Arm64EC = 1 , Amd64 = 2 }
enum  PPCInstrMasks : uint64_t {
  PADDI_R12_NO_DISP = 0x0610000039800000 , ADDIS_R12_TO_R2_NO_DISP = 0x3D820000 , ADDI_R12_TO_R2_NO_DISP = 0x39820000 , ADDI_R12_TO_R12_NO_DISP = 0x398C0000 ,
  PLD_R12_NO_DISP = 0x04100000E5800000 , MTCTR_R12 = 0x7D8903A6 , BCTR = 0x4E800420
}
enum class  object_error {
  arch_not_found = 1 , invalid_file_type , parse_failed , unexpected_eof ,
  string_table_non_null_end , invalid_section_index , bitcode_section_not_found , invalid_symbol_index ,
  section_stripped
}
enum class  FatHeaderType { FatHeader , Fat64Header }
enum  OffloadKind : uint16_t {
  OFK_None = 0 , OFK_OpenMP = (1 << 0) , OFK_Cuda = (1 << 1) , OFK_HIP = (1 << 2) ,
  OFK_SYCL = (1 << 3) , OFK_LAST = (1 << 4)
}
 The producer of the associated offloading image. More...
enum  ImageKind : uint16_t {
  IMG_None = 0 , IMG_Object , IMG_Bitcode , IMG_Cubin ,
  IMG_Fatbinary , IMG_PTX , IMG_LAST
}
 The type of contents the offloading image contains. More...
enum  UriTypeT { FILE_URI , MEMORY_URI }
enum  Kind {
  Unknown , Eof , Identifier , Comma ,
  Equal , EqualEqual , KwBase , KwConstant ,
  KwData , KwExports , KwExportAs , KwHeapsize ,
  KwLibrary , KwName , KwNoname , KwPrivate ,
  KwStacksize , KwVersion
}

Functions

LLVM_ABI Expected< std::unique_ptr< Binary > > createBinary (MemoryBufferRef Source, LLVMContext *Context=nullptr, bool InitContent=true)
 Create a Binary from Source, autodetecting the file type.
LLVM_ABI Expected< OwningBinary< Binary > > createBinary (StringRef Path, LLVMContext *Context=nullptr, bool InitContent=true)
LLVM_ABI BuildID parseBuildID (StringRef Str)
 Parses a build ID from a hex string.
LLVM_ABI BuildIDRef getBuildID (const ObjectFile *Obj)
 Returns the build ID, if any, contained in the given object file.
LLVM_ABI Error writeImportLibrary (StringRef ImportName, StringRef Path, ArrayRef< COFFShortExport > Exports, COFF::MachineTypes Machine, bool MinGW, ArrayRef< COFFShortExport > NativeExports={})
 Writes a COFF import library containing entries described by the Exports array.
LLVM_ABI Expected< COFFModuleDefinitionparseCOFFModuleDefinition (MemoryBufferRef MB, COFF::MachineTypes Machine, bool MingwDef=false, bool AddUnderscores=true)
LLVM_ABI StringRef getELFRelocationTypeName (uint32_t Machine, uint32_t Type)
LLVM_ABI uint32_t getELFRelativeRelocationType (uint32_t Machine)
LLVM_ABI StringRef getELFSectionTypeName (uint32_t Machine, uint32_t Type)
std::pair< unsigned char, unsigned chargetElfArchType (StringRef Object)
template<class ELFT>
static std::string getSecIndexForError (const ELFFile< ELFT > &Obj, const typename ELFT::Shdr &Sec)
template<class ELFT>
static std::string describe (const ELFFile< ELFT > &Obj, const typename ELFT::Shdr &Sec)
template<class ELFT>
static std::string getPhdrIndexForError (const ELFFile< ELFT > &Obj, const typename ELFT::Phdr &Phdr)
static Error defaultWarningHandler (const Twine &Msg)
template<class ELFT>
static bool checkSectionOffsets (const typename ELFT::Phdr &Phdr, const typename ELFT::Shdr &Sec)
template<class ELFT>
static bool checkSectionVMA (const typename ELFT::Phdr &Phdr, const typename ELFT::Shdr &Sec)
template<class ELFT>
static bool isSectionInSegment (const typename ELFT::Phdr &Phdr, const typename ELFT::Shdr &Sec)
template<bool Is64>
static Error decodeCrel (ArrayRef< uint8_t > Content, function_ref< void(uint64_t, bool)> HdrHandler, function_ref< void(Elf_Crel_Impl< Is64 >)> EntryHandler)
template<class ELFT>
Expected< const typename ELFT::Shdr * > getSection (typename ELFT::ShdrRange Sections, uint32_t Index)
template<class ELFT>
Expected< uint32_tgetExtendedSymbolTableIndex (const typename ELFT::Sym &Sym, unsigned SymIndex, DataRegion< typename ELFT::Word > ShndxTable)
template<class ELFT>
static Expected< uint64_tgetDynSymtabSizeFromGnuHash (const typename ELFT::GnuHash &Table, const void *BufEnd)
 This function finds the number of dynamic symbols using a GNU hash table.
uint32_t hashSysV (StringRef SymbolName)
 This function returns the hash value for a symbol in the .dynsym section Name of the API remains consistent as specified in the libelf REF : http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#hash.
uint32_t hashGnu (StringRef Name)
 This function returns the hash value for a symbol in the .dynsym section for the GNU hash table.
bool operator< (const ELFSymbolRef &A, const ELFSymbolRef &B)
LLVM_ABI const std::error_category & object_category ()
std::error_code make_error_code (object_error e)
LLVM_ABI Error isNotObjectErrorInvalidFileType (llvm::Error Err)
 isNotObjectErrorInvalidFileType() is used when looping through the children of an archive after calling getAsBinary() on the child and it returns an llvm::Error.
Error createError (const Twine &Err)
LLVM_ABI Expected< IRSymtabFilereadIRSymtab (MemoryBufferRef MBRef)
 Reads a bitcode file, creating its irsymtab if necessary.
LLVM_ABI Error writeUniversalBinary (ArrayRef< Slice > Slices, StringRef OutputFileName, FatHeaderType FatHeader=FatHeaderType::FatHeader)
LLVM_ABI Error writeUniversalBinaryToStream (ArrayRef< Slice > Slices, raw_ostream &Out, FatHeaderType FatHeader=FatHeaderType::FatHeader)
bool operator< (const SectionedAddress &LHS, const SectionedAddress &RHS)
bool operator== (const SectionedAddress &LHS, const SectionedAddress &RHS)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const SectionedAddress &Addr)
LLVM_ABI Error extractOffloadBinaries (MemoryBufferRef Buffer, SmallVectorImpl< OffloadFile > &Binaries)
 Extracts embedded device offloading code from a memory Buffer to a list of Binaries.
LLVM_ABI ImageKind getImageKind (StringRef Name)
 Convert a string Name to an image kind.
LLVM_ABI StringRef getImageKindName (ImageKind Name)
 Convert an image kind to its string representation.
LLVM_ABI OffloadKind getOffloadKind (StringRef Name)
 Convert a string Name to an offload kind.
LLVM_ABI StringRef getOffloadKindName (OffloadKind Name)
 Convert an offload kind to its string representation.
LLVM_ABI bool areTargetsCompatible (const OffloadFile::TargetID &LHS, const OffloadFile::TargetID &RHS)
 If the target is AMD we check the target IDs for mutual compatibility.
LLVM_ABI Error extractOffloadBundleFatBinary (const ObjectFile &Obj, SmallVectorImpl< OffloadBundleFatBin > &Bundles)
 Extracts fat binary in binary clang-offload-bundler format from object Obj and return it in Bundles.
LLVM_ABI Error extractCodeObject (const ObjectFile &Source, int64_t Offset, int64_t Size, StringRef OutputFileName)
 Extract code object memory from the given Source object file at Offset and of Size, and copy into OutputFileName.
LLVM_ABI Error extractOffloadBundleByURI (StringRef URIstr)
 Extracts an Offload Bundle Entry given by URI.
LLVM_ABI std::pair< SupportsRelocation, RelocationResolvergetRelocationResolver (const ObjectFile &Obj)
LLVM_ABI uint64_t resolveRelocation (RelocationResolver Resolver, const RelocationRef &R, uint64_t S, uint64_t LocData)
template<typename OStream>
OStream & operator<< (OStream &OS, const DataRefImpl &D)
bool operator== (const DataRefImpl &a, const DataRefImpl &b)
bool operator!= (const DataRefImpl &a, const DataRefImpl &b)
bool operator< (const DataRefImpl &a, const DataRefImpl &b)
LLVM_ABI int compareAddress (const SymEntry *A, const SymEntry *B)
LLVM_ABI std::vector< std::pair< SymbolRef, uint64_t > > computeSymbolSizes (const ObjectFile &O)
LLVM_ABI Expected< std::unique_ptr< MemoryBuffer > > writeWindowsResourceCOFF (llvm::COFF::MachineTypes MachineType, const WindowsResourceParser &Parser, uint32_t TimeDateStamp)
LLVM_ABI void printResourceTypeName (uint16_t TypeID, raw_ostream &OS)
LLVM_ABI bool doesXCOFFTracebackTableBegin (ArrayRef< uint8_t > Bytes)
static StringRef applyNameType (ImportNameType Type, StringRef name)
static uint16_t getImgRelRelocation (MachineTypes Machine)
template<class T>
static void append (std::vector< uint8_t > &B, const T &Data)
static void writeStringTable (std::vector< uint8_t > &B, ArrayRef< const std::string_view > Strings)
static ImportNameType getNameType (StringRef Sym, StringRef ExtName, MachineTypes Machine, bool MinGW)
static Expected< std::string > replace (StringRef S, StringRef From, StringRef To)
static bool isDecorated (StringRef Sym, bool MingwDef)
static int64_t getELFAddend (RelocationRef R)
static bool supportsX86_64 (uint64_t Type)
static uint64_t resolveX86_64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsAArch64 (uint64_t Type)
static uint64_t resolveAArch64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsBPF (uint64_t Type)
static uint64_t resolveBPF (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsMips64 (uint64_t Type)
static uint64_t resolveMips64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsMSP430 (uint64_t Type)
static uint64_t resolveMSP430 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsPPC64 (uint64_t Type)
static uint64_t resolvePPC64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsSystemZ (uint64_t Type)
static uint64_t resolveSystemZ (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsSparc64 (uint64_t Type)
static uint64_t resolveSparc64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool isAMDGPU (const ObjectFile &Obj)
 Returns true if Obj is an AMDGPU code object based solely on the value of e_machine.
static bool supportsAmdgpu (uint64_t Type)
static uint64_t resolveAmdgpu (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsX86 (uint64_t Type)
static uint64_t resolveX86 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsPPC32 (uint64_t Type)
static uint64_t resolvePPC32 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsARM (uint64_t Type)
static uint64_t resolveARM (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsAVR (uint64_t Type)
static uint64_t resolveAVR (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsLanai (uint64_t Type)
static uint64_t resolveLanai (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsMips32 (uint64_t Type)
static uint64_t resolveMips32 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsSparc32 (uint64_t Type)
static uint64_t resolveSparc32 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsHexagon (uint64_t Type)
static uint64_t resolveHexagon (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t, int64_t Addend)
static bool supportsRISCV (uint64_t Type)
static uint64_t resolveRISCV (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsCSKY (uint64_t Type)
static uint64_t resolveCSKY (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsLoongArch (uint64_t Type)
static uint64_t resolveLoongArch (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static bool supportsCOFFX86 (uint64_t Type)
static uint64_t resolveCOFFX86 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsCOFFX86_64 (uint64_t Type)
static uint64_t resolveCOFFX86_64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsCOFFARM (uint64_t Type)
static uint64_t resolveCOFFARM (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsCOFFARM64 (uint64_t Type)
static uint64_t resolveCOFFARM64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsMachOX86_64 (uint64_t Type)
static uint64_t resolveMachOX86_64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static bool supportsWasm32 (uint64_t Type)
static bool supportsWasm64 (uint64_t Type)
static uint64_t resolveWasm32 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t)
static uint64_t resolveWasm64 (uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend)
static Error readStringOrId (BinaryStreamReader &Reader, uint16_t &ID, ArrayRef< UTF16 > &Str, bool &IsString)
static bool convertUTF16LEToUTF8String (ArrayRef< UTF16 > Src, std::string &Out)
static std::string makeDuplicateResourceError (const ResourceEntryRef &Entry, StringRef File1, StringRef File2)
static void printStringOrID (const WindowsResourceParser::StringOrID &S, raw_string_ostream &OS, bool IsType, bool IsID)
static std::string makeDuplicateResourceError (const std::vector< WindowsResourceParser::StringOrID > &Context, StringRef File1, StringRef File2)
static void coffnamecpy (char(&Dest)[COFF::NameSize], StringRef Src)
template<typename T>
static Expected< const T * > getObject (MemoryBufferRef M, const void *Ptr, const uint64_t Size=sizeof(T))
static uintptr_t getWithOffset (uintptr_t Base, ptrdiff_t Offset)
template<typename T>
static const TviewAs (uintptr_t in)
static StringRef generateXCOFFFixedNameStringRef (const char *Name)
template<typename T>
Expected< StringRefgetLoaderSecSymNameInStrTbl (const T *LoaderSecHeader, uint64_t Offset)
template LLVM_EXPORT_TEMPLATE llvm::Expected< llvm::ArrayRef< llvm::object::XCOFFRelocation64 > > llvm::object::XCOFFObjectFile::relocations< llvm::object::XCOFFSectionHeader64, llvm::object::XCOFFRelocation64 > (llvm::object::XCOFFSectionHeader64 const &) const
template LLVM_EXPORT_TEMPLATE llvm::Expected< llvm::ArrayRef< llvm::object::XCOFFRelocation32 > > llvm::object::XCOFFObjectFile::relocations< llvm::object::XCOFFSectionHeader32, llvm::object::XCOFFRelocation32 > (llvm::object::XCOFFSectionHeader32 const &) const

Variables

const char ArchiveMagic [] = "!<arch>\n"
const char ThinArchiveMagic [] = "!<thin>\n"
const char BigArchiveMagic [] = "<bigaf>\n"
constexpr std::string_view ImportDescriptorPrefix = "__IMPORT_DESCRIPTOR_"
constexpr std::string_view NullImportDescriptorSymbolName
constexpr std::string_view NullThunkDataPrefix = "\x7f"
constexpr std::string_view NullThunkDataSuffix = "_NULL_THUNK_DATA"
constexpr int NumElfSymbolTypes = 16
LLVM_ABI const llvm::EnumEntry< unsignedElfSymbolTypes [NumElfSymbolTypes]
template class LLVM_TEMPLATE_ABI SFrameParser< endianness::big >
template class LLVM_TEMPLATE_ABI SFrameParser< endianness::little >
const size_t WIN_RES_MAGIC_SIZE = 16
const size_t WIN_RES_NULL_ENTRY_SIZE = 16
const uint32_t WIN_RES_HEADER_ALIGNMENT = 4
const uint32_t WIN_RES_DATA_ALIGNMENT = 4
const uint16_t WIN_RES_PURE_MOVEABLE = 0x0030
template struct LLVM_TEMPLATE_ABI XCOFFSectionHeader< XCOFFSectionHeader32 >
template struct LLVM_TEMPLATE_ABI XCOFFSectionHeader< XCOFFSectionHeader64 >
template struct LLVM_TEMPLATE_ABI ExceptionSectionEntry< support::ubig32_t >
template struct LLVM_TEMPLATE_ABI ExceptionSectionEntry< support::ubig64_t >
template struct LLVM_TEMPLATE_ABI XCOFFRelocation< llvm::support::ubig32_t >
template struct LLVM_TEMPLATE_ABI XCOFFRelocation< llvm::support::ubig64_t >
const uint32_t MIN_HEADER_SIZE = 7 * sizeof(uint32_t) + 2 * sizeof(uint16_t)
const uint32_t SECTION_ALIGNMENT = sizeof(uint64_t)
static const uint8_t FunctionSym = 0x20
static const uint16_t NoRelMask = 0x0001
static const size_t SymbolAuxTypeOffset = 17

Typedef Documentation

◆ arm64x_reloc_iterator

◆ base_reloc_iterator

◆ basic_symbol_iterator

◆ bind_iterator

◆ BuildID

A build ID in binary form.

Definition at line 26 of file BuildID.h.

◆ BuildIDRef

A reference to a BuildID in binary form.

Definition at line 29 of file BuildID.h.

◆ coff_symbol16

◆ coff_symbol32

◆ coff_tls_directory32

◆ coff_tls_directory64

◆ delay_import_directory_iterator

◆ dice_iterator

Definition at line 65 of file MachO.h.

◆ dynamic_reloc_iterator

◆ ELF32BE

Definition at line 99 of file ELFTypes.h.

◆ ELF32BEFile

Definition at line 534 of file ELF.h.

◆ ELF32BEObjectFile

◆ ELF32LE

Definition at line 98 of file ELFTypes.h.

◆ ELF32LEFile

Definition at line 532 of file ELF.h.

◆ ELF32LEObjectFile

◆ ELF64BE

Definition at line 101 of file ELFTypes.h.

◆ ELF64BEFile

Definition at line 535 of file ELF.h.

◆ ELF64BEObjectFile

◆ ELF64LE

Definition at line 100 of file ELFTypes.h.

◆ ELF64LEFile

Definition at line 533 of file ELF.h.

◆ ELF64LEObjectFile

◆ ExceptionSectionEntry32

◆ ExceptionSectionEntry64

◆ export_directory_iterator

◆ export_iterator

◆ export_name_pointer_table_entry

◆ export_ordinal_table_entry

◆ fixup_iterator

◆ import_directory_iterator

◆ import_lookup_table_entry32

◆ import_lookup_table_entry64

◆ imported_symbol_iterator

◆ rebase_iterator

◆ relocation_iterator

◆ RelocationResolver

Initial value:
uint64_t S, uint64_t LocData,
int64_t Addend)
The instances of the Type class are immutable: once they are created, they are never changed.
Definition Type.h:45
@ Offset
Definition DWP.cpp:477

Definition at line 29 of file RelocationResolver.h.

◆ section_iterator

◆ SectionFilterPredicate

Definition at line 51 of file ObjectFile.h.

◆ SupportsRelocation

Definition at line 28 of file RelocationResolver.h.

Enumeration Type Documentation

◆ chpe_range_type

Enumerator
Arm64 
Arm64EC 
Amd64 

Definition at line 762 of file COFF.h.

◆ FatHeaderType

enum class llvm::object::FatHeaderType
strong
Enumerator
FatHeader 
Fat64Header 

Definition at line 102 of file MachOUniversalWriter.h.

◆ frame_type

enum class llvm::object::frame_type : uint16_t
strong
Enumerator
Fpo 
Trap 
Tss 
NonFpo 

Definition at line 609 of file COFF.h.

◆ ImageKind

The type of contents the offloading image contains.

Enumerator
IMG_None 
IMG_Object 
IMG_Bitcode 
IMG_Cubin 
IMG_Fatbinary 
IMG_PTX 
IMG_LAST 

Definition at line 44 of file OffloadBinary.h.

◆ Kind

Enumerator
Unknown 
Eof 
Identifier 
Comma 
Equal 
EqualEqual 
KwBase 
KwConstant 
KwData 
KwExports 
KwExportAs 
KwHeapsize 
KwLibrary 
KwName 
KwNoname 
KwPrivate 
KwStacksize 
KwVersion 

Definition at line 31 of file COFFModuleDefinition.cpp.

◆ object_error

enum class llvm::object::object_error
strong
Enumerator
arch_not_found 
invalid_file_type 
parse_failed 
unexpected_eof 
string_table_non_null_end 
invalid_section_index 
bitcode_section_not_found 
invalid_symbol_index 
section_stripped 

Definition at line 28 of file Error.h.

◆ OffloadKind

The producer of the associated offloading image.

Enumerator
OFK_None 
OFK_OpenMP 
OFK_Cuda 
OFK_HIP 
OFK_SYCL 
OFK_LAST 

Definition at line 34 of file OffloadBinary.h.

◆ PPCInstrMasks

Enumerator
PADDI_R12_NO_DISP 
ADDIS_R12_TO_R2_NO_DISP 
ADDI_R12_TO_R2_NO_DISP 
ADDI_R12_TO_R12_NO_DISP 
PLD_R12_NO_DISP 
MTCTR_R12 
BCTR 

Definition at line 88 of file ELF.h.

◆ UriTypeT

Enumerator
FILE_URI 
MEMORY_URI 

Definition at line 114 of file OffloadBundle.h.

Function Documentation

◆ append()

template<class T>
void llvm::object::append ( std::vector< uint8_t > & B,
const T & Data )
static

Definition at line 141 of file COFFImportFile.cpp.

References B(), llvm::Data, and T.

◆ applyNameType()

◆ areTargetsCompatible()

bool llvm::object::areTargetsCompatible ( const OffloadFile::TargetID & LHS,
const OffloadFile::TargetID & RHS )

If the target is AMD we check the target IDs for mutual compatibility.

A target id is a string conforming to the folowing BNF syntax:

target-id ::= '<arch> ( : <feature> ( '+' | '-' ) )*'

The features 'xnack' and 'sramecc' are currently supported. These can be in the state of on, off, and any when unspecified. A target marked as any can bind with either on or off. This is used to link mutually compatible architectures together. Returns false in the case of an exact match.

Definition at line 350 of file OffloadBinary.cpp.

References T.

◆ checkSectionOffsets()

template<class ELFT>
bool llvm::object::checkSectionOffsets ( const typename ELFT::Phdr & Phdr,
const typename ELFT::Shdr & Sec )
static

Definition at line 170 of file ELF.h.

References llvm::ELF::SHT_NOBITS.

Referenced by isSectionInSegment().

◆ checkSectionVMA()

template<class ELFT>
bool llvm::object::checkSectionVMA ( const typename ELFT::Phdr & Phdr,
const typename ELFT::Shdr & Sec )
static

Definition at line 188 of file ELF.h.

References llvm::ELF::PT_TLS, llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_TLS, and llvm::ELF::SHT_NOBITS.

Referenced by isSectionInSegment().

◆ coffnamecpy()

void llvm::object::coffnamecpy ( char(&) Dest[COFF::NameSize],
StringRef Src )
static

Definition at line 721 of file WindowsResource.cpp.

References assert(), and llvm::COFF::NameSize.

◆ compareAddress()

int llvm::object::compareAddress ( const SymEntry * A,
const SymEntry * B )

Definition at line 21 of file SymbolSize.cpp.

References A(), and B().

Referenced by computeSymbolSizes().

◆ computeSymbolSizes()

◆ convertUTF16LEToUTF8String()

bool llvm::object::convertUTF16LEToUTF8String ( ArrayRef< UTF16 > Src,
std::string & Out )
static

◆ createBinary() [1/2]

Expected< std::unique_ptr< Binary > > llvm::object::createBinary ( MemoryBufferRef Source,
LLVMContext * Context = nullptr,
bool InitContent = true )

Create a Binary from Source, autodetecting the file type.

Parameters
SourceThe data to create the Binary from.

Definition at line 45 of file Binary.cpp.

References llvm::file_magic::archive, llvm::file_magic::bitcode, llvm::file_magic::clang_ast, llvm::file_magic::coff_cl_gl_object, llvm::file_magic::coff_import_library, llvm::file_magic::coff_object, llvm::object::Archive::create(), llvm::object::MachOUniversalBinary::create(), llvm::object::MinidumpFile::create(), llvm::object::OffloadBinary::create(), llvm::object::TapiUniversal::create(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::object::WindowsResource::createWindowsResource(), llvm::file_magic::cuda_fatbinary, llvm::file_magic::dxcontainer_object, llvm::file_magic::elf, llvm::file_magic::elf_core, llvm::file_magic::elf_executable, llvm::file_magic::elf_relocatable, llvm::file_magic::elf_shared_object, llvm::errorCodeToError(), llvm::MemoryBufferRef::getBuffer(), llvm::file_magic::goff_object, llvm::identify_magic(), invalid_file_type, llvm_unreachable, llvm::file_magic::macho_bundle, llvm::file_magic::macho_core, llvm::file_magic::macho_dsym_companion, llvm::file_magic::macho_dynamic_linker, llvm::file_magic::macho_dynamically_linked_shared_lib, llvm::file_magic::macho_dynamically_linked_shared_lib_stub, llvm::file_magic::macho_executable, llvm::file_magic::macho_file_set, llvm::file_magic::macho_fixed_virtual_memory_shared_lib, llvm::file_magic::macho_kext_bundle, llvm::file_magic::macho_object, llvm::file_magic::macho_preload_executable, llvm::file_magic::macho_universal_binary, llvm::file_magic::minidump, llvm::file_magic::offload_binary, llvm::file_magic::offload_bundle, llvm::file_magic::offload_bundle_compressed, llvm::file_magic::pdb, llvm::file_magic::pecoff_executable, llvm::file_magic::spirv_object, llvm::file_magic::tapi_file, llvm::file_magic::unknown, llvm::file_magic::wasm_object, llvm::file_magic::windows_resource, llvm::file_magic::xcoff_object_32, and llvm::file_magic::xcoff_object_64.

Referenced by llvm::MachO::DylibReader::accumulateSourceLocFromDSYM(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::coverage::BinaryCoverageReader::create(), llvm::memprof::RawMemProfReader::create(), createBinary(), llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary(), llvm::object::Archive::Child::getAsBinary(), llvm::orc::getDylibInterfaceFromDylib(), getPdbPathFromExe(), LLVMCreateBinary(), llvm::pdb::InputFile::open(), llvm::orc::COFFImportFileScanner::operator()(), llvm::ifs::readELFFile(), and llvm::MachO::DylibReader::readFile().

◆ createBinary() [2/2]

◆ createError()

Error llvm::object::createError ( const Twine & Err)
inline

Definition at line 86 of file Error.h.

References llvm::make_error(), and parse_failed.

Referenced by llvm::object::ELFFile< ELFT >::android_relas(), llvm::object::ELFFile< ELFT >::create(), llvm::object::SFrameParser< E >::create(), llvm::object::ObjectFile::createELFObjectFile(), decodeBBAddrMapImpl(), defaultWarningHandler(), llvm::object::ELFFile< ELFT >::dynamicEntries(), fixupIndexV4(), fixupIndexV5(), llvm::object::MachOObjectFile::getDyldChainedFixupTargets(), llvm::object::ELFFile< ELFT >::getEntry(), getExtendedSymbolTableIndex(), llvm::object::XCOFFObjectFile::getImportFileTable(), llvm::object::ELFFile< ELFT >::getLinkAsStrtab(), getLoaderSecSymNameInStrTbl(), llvm::object::XCOFFObjectFile::getRawData(), llvm::object::ELFObjectFile< ELFT >::getRelocationAddend(), getSection(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::object::XCOFFObjectFile::getSectionContents(), llvm::object::ELFFile< ELFT >::getSectionContentsAsArray(), llvm::object::XCOFFObjectFile::getSectionFileOffsetToRawData(), llvm::object::ELFFile< ELFT >::getSectionName(), llvm::object::ELFFile< ELFT >::getSectionStringTable(), llvm::object::ELFFile< ELFT >::getSegmentContents(), llvm::object::ELFFile< ELFT >::getSHNDXTable(), llvm::object::ELFFile< ELFT >::getStringTable(), llvm::object::XCOFFObjectFile::getStringTableEntry(), llvm::object::ELFFile< ELFT >::getStringTableForSymtab(), llvm::object::ELFFile< ELFT >::getSymbol(), llvm::object::XCOFFObjectFile::getSymbolNameByIndex(), llvm::object::ELFFile< ELFT >::getSymbolVersionByIndex(), llvm::object::ELFFile< ELFT >::getVersionDefinitions(), llvm::object::ELFFile< ELFT >::getVersionDependencies(), llvm::object::XCOFFSymbolRef::getXCOFFCsectAuxRef(), handleCompressedSection(), llvm::object::SFrameParser< E >::FallibleFREIterator::inc(), llvm::object::XCOFFSymbolRef::isFunction(), llvm::object::MachOChainedFixupEntry::moveNext(), llvm::object::ELFFile< ELF32LE >::notes_begin(), llvm::object::ELFFile< ELF32LE >::notes_begin(), llvm::object::DataRegion< T >::operator[](), llvm::object::ELFFile< ELF32LE >::program_headers(), readBBAddrMapImpl(), readDynsymVersionsImpl(), readFRE(), readULEB128As(), llvm::object::XCOFFObjectFile::relocations(), llvm::object::ELFFile< ELFT >::sections(), llvm::object::ELFFile< ELFT >::toMappedAddr(), and llvm::StackMapParser< Endianness >::validateHeader().

◆ decodeCrel()

◆ defaultWarningHandler()

◆ describe()

◆ doesXCOFFTracebackTableBegin()

bool llvm::object::doesXCOFFTracebackTableBegin ( ArrayRef< uint8_t > Bytes)

◆ extractCodeObject()

Error llvm::object::extractCodeObject ( const ObjectFile & Source,
int64_t Offset,
int64_t Size,
StringRef OutputFileName )

Extract code object memory from the given Source object file at Offset and of Size, and copy into OutputFileName.

Definition at line 202 of file OffloadBundle.cpp.

References llvm::FileOutputBuffer::create(), llvm::Offset, Size, llvm::Error::success(), and llvm::Expected< T >::takeError().

Referenced by llvm::object::OffloadBundleFatBin::extractBundle(), and extractOffloadBundleByURI().

◆ extractOffloadBinaries()

◆ extractOffloadBundleByURI()

◆ extractOffloadBundleFatBinary()

◆ generateXCOFFFixedNameStringRef()

◆ getBuildID()

BuildIDRef llvm::object::getBuildID ( const ObjectFile * Obj)

Returns the build ID, if any, contained in the given object file.

Definition at line 56 of file BuildID.cpp.

References llvm::dyn_cast().

Referenced by loadBinaryFormat().

◆ getDynSymtabSizeFromGnuHash()

template<class ELFT>
Expected< uint64_t > llvm::object::getDynSymtabSizeFromGnuHash ( const typename ELFT::GnuHash & Table,
const void * BufEnd )
static

This function finds the number of dynamic symbols using a GNU hash table.

Parameters
TableThe GNU hash table for .dynsym.

Definition at line 802 of file ELF.h.

References llvm::createStringError(), and parse_failed.

Referenced by llvm::object::ELFFile< ELFT >::getDynSymtabSize().

◆ getELFAddend()

int64_t llvm::object::getELFAddend ( RelocationRef R)
static

◆ getElfArchType()

◆ getELFRelativeRelocationType()

◆ getELFRelocationTypeName()

◆ getELFSectionTypeName()

LLVM_ABI StringRef llvm::object::getELFSectionTypeName ( uint32_t Machine,
uint32_t Type )

◆ getExtendedSymbolTableIndex()

template<class ELFT>
Expected< uint32_t > llvm::object::getExtendedSymbolTableIndex ( const typename ELFT::Sym & Sym,
unsigned SymIndex,
DataRegion< typename ELFT::Word > ShndxTable )
inline

◆ getImageKind()

ImageKind llvm::object::getImageKind ( StringRef Name)

Convert a string Name to an image kind.

Definition at line 323 of file OffloadBinary.cpp.

References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), IMG_Bitcode, IMG_Cubin, IMG_Fatbinary, IMG_None, IMG_Object, and IMG_PTX.

◆ getImageKindName()

StringRef llvm::object::getImageKindName ( ImageKind Name)

Convert an image kind to its string representation.

Definition at line 333 of file OffloadBinary.cpp.

References IMG_Bitcode, IMG_Cubin, IMG_Fatbinary, IMG_Object, and IMG_PTX.

◆ getImgRelRelocation()

◆ getLoaderSecSymNameInStrTbl()

template<typename T>
Expected< StringRef > llvm::object::getLoaderSecSymNameInStrTbl ( const T * LoaderSecHeader,
uint64_t Offset )

◆ getNameType()

◆ getObject()

◆ getOffloadKind()

OffloadKind llvm::object::getOffloadKind ( StringRef Name)

Convert a string Name to an offload kind.

Definition at line 299 of file OffloadBinary.cpp.

References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), OFK_Cuda, OFK_HIP, OFK_None, OFK_OpenMP, and OFK_SYCL.

◆ getOffloadKindName()

StringRef llvm::object::getOffloadKindName ( OffloadKind Name)

Convert an offload kind to its string representation.

Definition at line 308 of file OffloadBinary.cpp.

References OFK_Cuda, OFK_HIP, OFK_OpenMP, and OFK_SYCL.

◆ getPhdrIndexForError()

template<class ELFT>
std::string llvm::object::getPhdrIndexForError ( const ELFFile< ELFT > & Obj,
const typename ELFT::Phdr & Phdr )
static

◆ getRelocationResolver()

std::pair< SupportsRelocation, RelocationResolver > llvm::object::getRelocationResolver ( const ObjectFile & Obj)

Definition at line 774 of file RelocationResolver.cpp.

References llvm::Triple::aarch64, llvm::Triple::aarch64_be, llvm::Triple::amdgcn, llvm::Triple::arm, llvm::Triple::armeb, assert(), llvm::Triple::avr, llvm::Triple::bpfeb, llvm::Triple::bpfel, llvm::Triple::csky, llvm::object::ObjectFile::getArch(), llvm::object::ObjectFile::getBytesInAddress(), llvm::Triple::hexagon, isAMDGPU(), llvm::object::Binary::isCOFF(), llvm::object::Binary::isELF(), llvm::object::Binary::isMachO(), llvm::object::Binary::isWasm(), llvm::Triple::lanai, llvm_unreachable, llvm::Triple::loongarch32, llvm::Triple::loongarch64, llvm::Triple::mips, llvm::Triple::mips64, llvm::Triple::mips64el, llvm::Triple::mipsel, llvm::Triple::msp430, llvm::Triple::ppc, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::Triple::ppcle, llvm::Triple::r600, resolveAArch64(), resolveAmdgpu(), resolveARM(), resolveAVR(), resolveBPF(), resolveCOFFARM(), resolveCOFFARM64(), resolveCOFFX86(), resolveCOFFX86_64(), resolveCSKY(), resolveHexagon(), resolveLanai(), resolveLoongArch(), resolveMachOX86_64(), resolveMips32(), resolveMips64(), resolveMSP430(), resolvePPC32(), resolvePPC64(), resolveRISCV(), resolveSparc32(), resolveSparc64(), resolveSystemZ(), resolveWasm32(), resolveWasm64(), resolveX86(), resolveX86_64(), llvm::Triple::riscv32, llvm::Triple::riscv32be, llvm::Triple::riscv64, llvm::Triple::riscv64be, llvm::Triple::sparc, llvm::Triple::sparcv9, supportsAArch64(), supportsAmdgpu(), supportsARM(), supportsAVR(), supportsBPF(), supportsCOFFARM(), supportsCOFFARM64(), supportsCOFFX86(), supportsCOFFX86_64(), supportsCSKY(), supportsHexagon(), supportsLanai(), supportsLoongArch(), supportsMachOX86_64(), supportsMips32(), supportsMips64(), supportsMSP430(), supportsPPC32(), supportsPPC64(), supportsRISCV(), supportsSparc32(), supportsSparc64(), supportsSystemZ(), supportsWasm32(), supportsWasm64(), supportsX86(), supportsX86_64(), llvm::Triple::systemz, llvm::Triple::thumb, llvm::Triple::wasm32, llvm::Triple::wasm64, llvm::Triple::x86, and llvm::Triple::x86_64.

Referenced by loadObj().

◆ getSecIndexForError()

template<class ELFT>
std::string llvm::object::getSecIndexForError ( const ELFFile< ELFT > & Obj,
const typename ELFT::Shdr & Sec )
static

◆ getSection()

template<class ELFT>
Expected< const typename ELFT::Shdr * > llvm::object::getSection ( typename ELFT::ShdrRange Sections,
uint32_t Index )
inline

Definition at line 539 of file ELF.h.

References createError().

Referenced by llvm::object::ELFFile< ELFT >::getEntry(), llvm::object::ELFFile< ELFT >::getLinkAsStrtab(), llvm::object::ELFObjectFile< ELFT >::getRelocatedSection(), llvm::object::ELFFile< ELFT >::getSection(), llvm::object::ELFFile< ELFT >::getSection(), llvm::object::ELFFile< ELFT >::getSection(), llvm::object::ELFObjectFile< ELFT >::getSectionAddress(), llvm::object::ELFObjectFile< ELFT >::getSectionAlignment(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::object::ELFObjectFile< ELFT >::getSectionContents(), llvm::object::ELFObjectFile< ELFT >::getSectionFlags(), llvm::object::ELFObjectFile< ELFT >::getSectionIndex(), llvm::object::ELFObjectFile< ELFT >::getSectionName(), llvm::object::ELFObjectFile< ELFT >::getSectionOffset(), llvm::object::ELFObjectFile< ELFT >::getSectionSize(), llvm::object::ELFObjectFile< ELFT >::getSectionType(), llvm::object::ELFFile< ELFT >::getSHNDXTable(), llvm::object::ELFFile< ELFT >::getStringTableForSymtab(), llvm::object::ELFObjectFile< ELFT >::isBerkeleyData(), llvm::object::ELFObjectFile< ELFT >::isBerkeleyText(), llvm::object::ELFObjectFile< ELFT >::isSectionBSS(), llvm::object::ELFObjectFile< ELFT >::isSectionCompressed(), llvm::object::ELFObjectFile< ELFT >::isSectionData(), llvm::object::ELFObjectFile< ELFT >::isSectionText(), llvm::object::ELFObjectFile< ELFT >::isSectionVirtual(), LLVMMoveToContainingSection(), llvm::object::ELFObjectFile< ELFT >::moveSectionNext(), and llvm::orc::ELFDebugObject::reportSectionTargetMemoryRange().

◆ getWithOffset()

◆ hashGnu()

uint32_t llvm::object::hashGnu ( StringRef Name)
inline

This function returns the hash value for a symbol in the .dynsym section for the GNU hash table.

The implementation is defined in the GNU hash ABI. REF : https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/elf.c#l222

Definition at line 1369 of file ELF.h.

References llvm::CallingConv::C, and H.

◆ hashSysV()

uint32_t llvm::object::hashSysV ( StringRef SymbolName)
inline

This function returns the hash value for a symbol in the .dynsym section Name of the API remains consistent as specified in the libelf REF : http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#hash.

Definition at line 1357 of file ELF.h.

References llvm::CallingConv::C, and H.

◆ isAMDGPU()

bool llvm::object::isAMDGPU ( const ObjectFile & Obj)
static

Returns true if Obj is an AMDGPU code object based solely on the value of e_machine.

AMDGPU code objects with an e_machine of EF_AMDGPU_MACH_NONE do not identify their arch as either r600 or amdgcn, but we can still handle their relocations. When we identify an ELF object with an UnknownArch, we use isAMDGPU to check for this case.

Definition at line 260 of file RelocationResolver.cpp.

References llvm::dyn_cast(), and llvm::ELF::EM_AMDGPU.

Referenced by getRelocationResolver().

◆ isDecorated()

bool llvm::object::isDecorated ( StringRef Sym,
bool MingwDef )
static

◆ isNotObjectErrorInvalidFileType()

llvm::Error llvm::object::isNotObjectErrorInvalidFileType ( llvm::Error Err)

isNotObjectErrorInvalidFileType() is used when looping through the children of an archive after calling getAsBinary() on the child and it returns an llvm::Error.

In the cases we want to loop through the children and ignore the non-objects in the archive this is used to test the error to see if an error() function needs to called on the llvm::Error.

Definition at line 82 of file Error.cpp.

References llvm::Error, llvm::handleErrors(), invalid_file_type, and llvm::Error::success().

◆ isSectionInSegment()

template<class ELFT>
bool llvm::object::isSectionInSegment ( const typename ELFT::Phdr & Phdr,
const typename ELFT::Shdr & Sec )
static

Definition at line 207 of file ELF.h.

References checkSectionOffsets(), and checkSectionVMA().

◆ llvm::object::XCOFFObjectFile::relocations< llvm::object::XCOFFSectionHeader32, llvm::object::XCOFFRelocation32 >()

◆ llvm::object::XCOFFObjectFile::relocations< llvm::object::XCOFFSectionHeader64, llvm::object::XCOFFRelocation64 >()

◆ make_error_code()

std::error_code llvm::object::make_error_code ( object_error e)
inline

◆ makeDuplicateResourceError() [1/2]

std::string llvm::object::makeDuplicateResourceError ( const ResourceEntryRef & Entry,
StringRef File1,
StringRef File2 )
static

◆ makeDuplicateResourceError() [2/2]

std::string llvm::object::makeDuplicateResourceError ( const std::vector< WindowsResourceParser::StringOrID > & Context,
StringRef File1,
StringRef File2 )
static

Definition at line 227 of file WindowsResource.cpp.

References printStringOrID(), and llvm::raw_string_ostream::str().

◆ object_category()

const std::error_category & llvm::object::object_category ( )

Definition at line 77 of file Error.cpp.

Referenced by make_error_code().

◆ operator!=()

bool llvm::object::operator!= ( const DataRefImpl & a,
const DataRefImpl & b )
inline

Definition at line 60 of file SymbolicFile.h.

References operator==().

◆ operator<() [1/3]

bool llvm::object::operator< ( const DataRefImpl & a,
const DataRefImpl & b )
inline

Definition at line 64 of file SymbolicFile.h.

◆ operator<() [2/3]

bool llvm::object::operator< ( const ELFSymbolRef & A,
const ELFSymbolRef & B )
inline

◆ operator<() [3/3]

bool llvm::object::operator< ( const SectionedAddress & LHS,
const SectionedAddress & RHS )
inline

Definition at line 154 of file ObjectFile.h.

References LHS, and RHS.

◆ operator<<() [1/2]

template<typename OStream>
OStream & llvm::object::operator<< ( OStream & OS,
const DataRefImpl & D )

Definition at line 48 of file SymbolicFile.h.

References D(), and llvm::format().

◆ operator<<() [2/2]

◆ operator==() [1/2]

bool llvm::object::operator== ( const DataRefImpl & a,
const DataRefImpl & b )
inline

Definition at line 54 of file SymbolicFile.h.

◆ operator==() [2/2]

bool llvm::object::operator== ( const SectionedAddress & LHS,
const SectionedAddress & RHS )
inline

Definition at line 160 of file ObjectFile.h.

References LHS, and RHS.

Referenced by operator!=().

◆ parseBuildID()

BuildID llvm::object::parseBuildID ( StringRef Str)

Parses a build ID from a hex string.

Definition at line 47 of file BuildID.cpp.

References llvm::tryGetFromHex().

◆ parseCOFFModuleDefinition()

Expected< COFFModuleDefinition > llvm::object::parseCOFFModuleDefinition ( MemoryBufferRef MB,
COFF::MachineTypes Machine,
bool MingwDef = false,
bool AddUnderscores = true )

◆ printResourceTypeName()

void llvm::object::printResourceTypeName ( uint16_t TypeID,
raw_ostream & OS )

Definition at line 142 of file WindowsResource.cpp.

Referenced by makeDuplicateResourceError(), and printStringOrID().

◆ printStringOrID()

◆ readIRSymtab()

Expected< IRSymtabFile > llvm::object::readIRSymtab ( MemoryBufferRef MBRef)

Reads a bitcode file, creating its irsymtab if necessary.

Definition at line 135 of file IRObjectFile.cpp.

References F, llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::getBitcodeFileContents(), llvm::irsymtab::readBitcode(), and llvm::Expected< T >::takeError().

Referenced by llvm::lto::InputFile::create().

◆ readStringOrId()

◆ replace()

◆ resolveAArch64()

uint64_t llvm::object::resolveAArch64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 88 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveAmdgpu()

uint64_t llvm::object::resolveAmdgpu ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 276 of file RelocationResolver.cpp.

References assert(), llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveARM()

uint64_t llvm::object::resolveARM ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 345 of file RelocationResolver.cpp.

References assert(), llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveAVR()

uint64_t llvm::object::resolveAVR ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 371 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveBPF()

uint64_t llvm::object::resolveBPF ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

Definition at line 116 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveCOFFARM()

uint64_t llvm::object::resolveCOFFARM ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

◆ resolveCOFFARM64()

uint64_t llvm::object::resolveCOFFARM64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

◆ resolveCOFFX86()

uint64_t llvm::object::resolveCOFFX86 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

◆ resolveCOFFX86_64()

uint64_t llvm::object::resolveCOFFX86_64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

◆ resolveCSKY()

uint64_t llvm::object::resolveCSKY ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 528 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveHexagon()

uint64_t llvm::object::resolveHexagon ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 435 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveLanai()

uint64_t llvm::object::resolveLanai ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 387 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveLoongArch()

uint64_t llvm::object::resolveLoongArch ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 564 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveMachOX86_64()

uint64_t llvm::object::resolveMachOX86_64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

◆ resolveMips32()

uint64_t llvm::object::resolveMips32 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

Definition at line 404 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveMips64()

uint64_t llvm::object::resolveMips64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 140 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveMSP430()

uint64_t llvm::object::resolveMSP430 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 166 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolvePPC32()

uint64_t llvm::object::resolvePPC32 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 324 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolvePPC64()

uint64_t llvm::object::resolvePPC64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 190 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveRelocation()

◆ resolveRISCV()

uint64_t llvm::object::resolveRISCV ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 473 of file RelocationResolver.cpp.

References A(), llvm_unreachable, llvm::Offset, and RA.

Referenced by getRelocationResolver().

◆ resolveSparc32()

uint64_t llvm::object::resolveSparc32 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 424 of file RelocationResolver.cpp.

References llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveSparc64()

uint64_t llvm::object::resolveSparc64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 240 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveSystemZ()

uint64_t llvm::object::resolveSystemZ ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t ,
int64_t Addend )
static

Definition at line 216 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveWasm32()

uint64_t llvm::object::resolveWasm32 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

Definition at line 733 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver(), and resolveWasm64().

◆ resolveWasm64()

uint64_t llvm::object::resolveWasm64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 757 of file RelocationResolver.cpp.

References llvm::Offset, and resolveWasm32().

Referenced by getRelocationResolver().

◆ resolveX86()

uint64_t llvm::object::resolveX86 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t  )
static

Definition at line 300 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ resolveX86_64()

uint64_t llvm::object::resolveX86_64 ( uint64_t Type,
uint64_t Offset,
uint64_t S,
uint64_t LocData,
int64_t Addend )
static

Definition at line 55 of file RelocationResolver.cpp.

References llvm_unreachable, and llvm::Offset.

Referenced by getRelocationResolver().

◆ supportsAArch64()

bool llvm::object::supportsAArch64 ( uint64_t Type)
static

Definition at line 75 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsAmdgpu()

bool llvm::object::supportsAmdgpu ( uint64_t Type)
static

Definition at line 266 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsARM()

bool llvm::object::supportsARM ( uint64_t Type)
static

Definition at line 335 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsAVR()

bool llvm::object::supportsAVR ( uint64_t Type)
static

Definition at line 361 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsBPF()

bool llvm::object::supportsBPF ( uint64_t Type)
static

Definition at line 106 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsCOFFARM()

bool llvm::object::supportsCOFFARM ( uint64_t Type)
static

◆ supportsCOFFARM64()

bool llvm::object::supportsCOFFARM64 ( uint64_t Type)
static

◆ supportsCOFFX86()

bool llvm::object::supportsCOFFX86 ( uint64_t Type)
static

◆ supportsCOFFX86_64()

bool llvm::object::supportsCOFFX86_64 ( uint64_t Type)
static

◆ supportsCSKY()

bool llvm::object::supportsCSKY ( uint64_t Type)
static

Definition at line 517 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsHexagon()

bool llvm::object::supportsHexagon ( uint64_t Type)
static

Definition at line 431 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsLanai()

bool llvm::object::supportsLanai ( uint64_t Type)
static

Definition at line 383 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsLoongArch()

bool llvm::object::supportsLoongArch ( uint64_t Type)
static

Definition at line 542 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsMachOX86_64()

bool llvm::object::supportsMachOX86_64 ( uint64_t Type)
static

Definition at line 686 of file RelocationResolver.cpp.

References llvm::MachO::X86_64_RELOC_UNSIGNED.

Referenced by getRelocationResolver().

◆ supportsMips32()

bool llvm::object::supportsMips32 ( uint64_t Type)
static

Definition at line 394 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsMips64()

bool llvm::object::supportsMips64 ( uint64_t Type)
static

Definition at line 128 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsMSP430()

bool llvm::object::supportsMSP430 ( uint64_t Type)
static

Definition at line 156 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsPPC32()

bool llvm::object::supportsPPC32 ( uint64_t Type)
static

Definition at line 314 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsPPC64()

bool llvm::object::supportsPPC64 ( uint64_t Type)
static

Definition at line 178 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsRISCV()

bool llvm::object::supportsRISCV ( uint64_t Type)
static

Definition at line 442 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsSparc32()

bool llvm::object::supportsSparc32 ( uint64_t Type)
static

Definition at line 414 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsSparc64()

bool llvm::object::supportsSparc64 ( uint64_t Type)
static

Definition at line 228 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsSystemZ()

bool llvm::object::supportsSystemZ ( uint64_t Type)
static

Definition at line 206 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsWasm32()

bool llvm::object::supportsWasm32 ( uint64_t Type)
static

Definition at line 697 of file RelocationResolver.cpp.

Referenced by getRelocationResolver(), and supportsWasm64().

◆ supportsWasm64()

bool llvm::object::supportsWasm64 ( uint64_t Type)
static

Definition at line 719 of file RelocationResolver.cpp.

References supportsWasm32().

Referenced by getRelocationResolver().

◆ supportsX86()

bool llvm::object::supportsX86 ( uint64_t Type)
static

Definition at line 289 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ supportsX86_64()

bool llvm::object::supportsX86_64 ( uint64_t Type)
static

Definition at line 39 of file RelocationResolver.cpp.

Referenced by getRelocationResolver().

◆ viewAs()

◆ writeImportLibrary()

Error llvm::object::writeImportLibrary ( StringRef ImportName,
StringRef Path,
ArrayRef< COFFShortExport > Exports,
COFF::MachineTypes Machine,
bool MinGW,
ArrayRef< COFFShortExport > NativeExports = {} )

Writes a COFF import library containing entries described by the Exports array.

For hybrid targets such as ARM64EC, additional native entry points can be exposed using the NativeExports parameter. When NativeExports is used, the output import library will expose these native ARM64 imports alongside the entries described in the Exports array. Such a library can be used for linking both ARM64EC and pure ARM64 objects, and the linker will pick only the exports relevant to the target platform. For non-hybrid targets, the NativeExports parameter should not be used.

Definition at line 661 of file COFFImportFile.cpp.

References applyNameType(), D(), llvm::StringMap< ValueTy, AllocatorTy >::end(), llvm::Export, llvm::sys::path::filename(), llvm::StringMap< ValueTy, AllocatorTy >::find(), llvm::getArm64ECDemangledFunctionName(), llvm::getArm64ECMangledFunctionName(), getNameType(), llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64EC, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMPORT_CODE, llvm::COFF::IMPORT_CONST, llvm::COFF::IMPORT_DATA, llvm::COFF::IMPORT_NAME, llvm::COFF::IMPORT_NAME_EXPORTAS, llvm::COFF::IMPORT_NAME_NOPREFIX, llvm::COFF::IMPORT_NAME_UNDECORATE, llvm::COFF::IMPORT_ORDINAL, llvm::COFF::isArm64EC(), llvm::object::Archive::K_COFF, Machine, llvm::make_error(), llvm::NormalSymtab, parse_failed, llvm::SmallVectorTemplateBase< T, bool >::push_back(), replace(), llvm::Error::success(), llvm::Expected< T >::takeError(), and llvm::writeArchive().

Referenced by llvm::dlltoolDriverMain(), and llvm::libDriverMain().

◆ writeStringTable()

void llvm::object::writeStringTable ( std::vector< uint8_t > & B,
ArrayRef< const std::string_view > Strings )
static

◆ writeUniversalBinary()

◆ writeUniversalBinaryToStream()

◆ writeWindowsResourceCOFF()

Expected< std::unique_ptr< MemoryBuffer > > llvm::object::writeWindowsResourceCOFF ( llvm::COFF::MachineTypes MachineType,
const WindowsResourceParser & Parser,
uint32_t TimeDateStamp )

Variable Documentation

◆ ArchiveMagic

const char llvm::object::ArchiveMagic[] = "!<arch>\n"

◆ BigArchiveMagic

const char llvm::object::BigArchiveMagic[] = "<bigaf>\n"

◆ ElfSymbolTypes

const EnumEntry< unsigned > llvm::object::ElfSymbolTypes
extern
Initial value:
= {
{"None", "NOTYPE", ELF::STT_NOTYPE},
{"Object", "OBJECT", ELF::STT_OBJECT},
{"Function", "FUNC", ELF::STT_FUNC},
{"Section", "SECTION", ELF::STT_SECTION},
{"File", "FILE", ELF::STT_FILE},
{"Common", "COMMON", ELF::STT_COMMON},
{"TLS", "TLS", ELF::STT_TLS},
{"Unknown", "<unknown>: 7", 7},
{"Unknown", "<unknown>: 8", 8},
{"Unknown", "<unknown>: 9", 9},
{"GNU_IFunc", "IFUNC", ELF::STT_GNU_IFUNC},
{"OS Specific", "<OS specific>: 11", 11},
{"OS Specific", "<OS specific>: 12", 12},
{"Proc Specific", "<processor specific>: 13", 13},
{"Proc Specific", "<processor specific>: 14", 14},
{"Proc Specific", "<processor specific>: 15", 15}
}
@ STT_FUNC
Definition ELF.h:1410
@ STT_NOTYPE
Definition ELF.h:1408
@ STT_SECTION
Definition ELF.h:1411
@ STT_FILE
Definition ELF.h:1412
@ STT_COMMON
Definition ELF.h:1413
@ STT_GNU_IFUNC
Definition ELF.h:1415
@ STT_OBJECT
Definition ELF.h:1409
@ STT_TLS
Definition ELF.h:1414

Definition at line 40 of file ELFObjectFile.cpp.

Referenced by llvm::object::ELFSymbolRef::getELFTypeName().

◆ ExceptionSectionEntry< support::ubig32_t >

◆ ExceptionSectionEntry< support::ubig64_t >

◆ FunctionSym

const uint8_t llvm::object::FunctionSym = 0x20
static

Definition at line 27 of file XCOFFObjectFile.cpp.

Referenced by llvm::object::XCOFFSymbolRef::isFunction().

◆ ImportDescriptorPrefix

std::string_view llvm::object::ImportDescriptorPrefix = "__IMPORT_DESCRIPTOR_"
constexpr

Definition at line 31 of file COFFImportFile.h.

Referenced by isImportDescriptor().

◆ MIN_HEADER_SIZE

const uint32_t llvm::object::MIN_HEADER_SIZE = 7 * sizeof(uint32_t) + 2 * sizeof(uint16_t)

Definition at line 44 of file WindowsResource.cpp.

◆ NoRelMask

const uint16_t llvm::object::NoRelMask = 0x0001
static

◆ NullImportDescriptorSymbolName

std::string_view llvm::object::NullImportDescriptorSymbolName
constexpr
Initial value:
=
"__NULL_IMPORT_DESCRIPTOR"

Definition at line 32 of file COFFImportFile.h.

Referenced by isImportDescriptor().

◆ NullThunkDataPrefix

std::string_view llvm::object::NullThunkDataPrefix = "\x7f"
constexpr

Definition at line 34 of file COFFImportFile.h.

Referenced by isImportDescriptor().

◆ NullThunkDataSuffix

std::string_view llvm::object::NullThunkDataSuffix = "_NULL_THUNK_DATA"
constexpr

Definition at line 35 of file COFFImportFile.h.

Referenced by isImportDescriptor().

◆ NumElfSymbolTypes

int llvm::object::NumElfSymbolTypes = 16
constexpr

Definition at line 48 of file ELFObjectFile.h.

◆ SECTION_ALIGNMENT

const uint32_t llvm::object::SECTION_ALIGNMENT = sizeof(uint64_t)

Definition at line 48 of file WindowsResource.cpp.

◆ SFrameParser< endianness::big >

Definition at line 231 of file SFrameParser.cpp.

◆ SFrameParser< endianness::little >

Definition at line 233 of file SFrameParser.cpp.

◆ SymbolAuxTypeOffset

const size_t llvm::object::SymbolAuxTypeOffset = 17
static

Definition at line 29 of file XCOFFObjectFile.cpp.

Referenced by llvm::object::XCOFFObjectFile::getSymbolAuxType().

◆ ThinArchiveMagic

const char llvm::object::ThinArchiveMagic[] = "!<thin>\n"

◆ WIN_RES_DATA_ALIGNMENT

const uint32_t llvm::object::WIN_RES_DATA_ALIGNMENT = 4

Definition at line 58 of file WindowsResource.h.

◆ WIN_RES_HEADER_ALIGNMENT

const uint32_t llvm::object::WIN_RES_HEADER_ALIGNMENT = 4

Definition at line 57 of file WindowsResource.h.

◆ WIN_RES_MAGIC_SIZE

const size_t llvm::object::WIN_RES_MAGIC_SIZE = 16

◆ WIN_RES_NULL_ENTRY_SIZE

const size_t llvm::object::WIN_RES_NULL_ENTRY_SIZE = 16

◆ WIN_RES_PURE_MOVEABLE

const uint16_t llvm::object::WIN_RES_PURE_MOVEABLE = 0x0030

Definition at line 59 of file WindowsResource.h.

◆ XCOFFRelocation< llvm::support::ubig32_t >

◆ XCOFFRelocation< llvm::support::ubig64_t >

◆ XCOFFSectionHeader< XCOFFSectionHeader32 >

◆ XCOFFSectionHeader< XCOFFSectionHeader64 >