16#ifndef LLVM_OBJECT_COFFIMPORTFILE_H
17#define LLVM_OBJECT_COFFIMPORTFILE_H
33 "__NULL_IMPORT_DESCRIPTOR";
39 enum SymbolIndex { ImpSymbol, ThunkSymbol, ECAuxSymbol, ECThunkSymbol };
62 Symb.
p = ImpSymbol + 1;
64 Symb.
p = ECThunkSymbol + 1;
66 Symb.
p = ThunkSymbol + 1;
70 bool is64Bit()
const override {
return false; }
74 Data.getBufferStart());
119 return L.Name == R.Name && L.ExtName == R.ExtName &&
120 L.Ordinal == R.Ordinal && L.Noname == R.Noname &&
121 L.Data == R.Data && L.Private == R.Private;
Function const char TargetMachine * Machine
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
StringRef - Represent a constant reference to a string, i.e.
This is a value type class that represents a single symbol in the list of symbols in the object file.
const coff_import_header * getCOFFImportHeader() const
Expected< uint32_t > getSymbolFlags(DataRefImpl Symb) const override
bool is64Bit() const override
void moveSymbolNext(DataRefImpl &Symb) const override
COFFImportFile(MemoryBufferRef Source)
basic_symbol_iterator symbol_begin() const override
basic_symbol_iterator symbol_end() const override
static bool classof(Binary const *V)
uint16_t getMachine() const
SymbolicFile(unsigned int Type, MemoryBufferRef Source)
This class implements an extremely fast bulk output stream that can only output to a stream.
bool isArm64EC(T Machine)
constexpr std::string_view NullImportDescriptorSymbolName
content_iterator< BasicSymbolRef > basic_symbol_iterator
constexpr std::string_view NullThunkDataPrefix
constexpr std::string_view NullThunkDataSuffix
constexpr std::string_view ImportDescriptorPrefix
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.
This is an optimization pass for GlobalISel generic memory operations.
std::string Name
The name of the export as specified in the .def file or on the command line, i.e.
std::string SymbolName
The real, mangled symbol name from the object file.
std::string ExportAs
Specifies EXPORTAS name.
friend bool operator!=(const COFFShortExport &L, const COFFShortExport &R)
std::string ImportName
Creates an import library entry that imports from a DLL export with a different name.
std::string ExtName
The external, exported name.
friend bool operator==(const COFFShortExport &L, const COFFShortExport &R)