16#ifndef LLVM_OBJECT_COFFIMPORTFILE_H
17#define LLVM_OBJECT_COFFIMPORTFILE_H
32 "__NULL_IMPORT_DESCRIPTOR";
38 enum SymbolIndex { ImpSymbol, ThunkSymbol, ECAuxSymbol, ECThunkSymbol };
61 Symb.
p = ImpSymbol + 1;
63 Symb.
p = ECThunkSymbol + 1;
65 Symb.
p = ThunkSymbol + 1;
69 bool is64Bit()
const override {
return false; }
118 return L.Name == R.Name && L.ExtName == R.ExtName &&
119 L.Ordinal == R.Ordinal && L.Noname == R.Noname &&
120 L.Data == R.Data && L.Private == R.Private;
COFF::MachineTypes Machine
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
This is an important base class in LLVM.
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
const char * getBufferStart() const
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
StringRef getFileFormatName() const
COFFImportFile(MemoryBufferRef Source)
basic_symbol_iterator symbol_begin() const override
StringRef getExportName() const
Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override
basic_symbol_iterator symbol_end() const override
static bool classof(Binary const *V)
uint16_t getMachine() const
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
Error writeImportLibrary(StringRef ImportName, StringRef Path, ArrayRef< COFFShortExport > Exports, COFF::MachineTypes Machine, bool MinGW, ArrayRef< COFFShortExport > NativeExports=std::nullopt)
Writes a COFF import library containing entries described by the Exports array.
constexpr std::string_view NullThunkDataPrefix
constexpr std::string_view NullThunkDataSuffix
constexpr std::string_view ImportDescriptorPrefix
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)