14 #ifndef LLVM_OBJECT_IROBJECTFILE_H
15 #define LLVM_OBJECT_IROBJECTFILE_H
28 std::unique_ptr<Module> M;
29 std::unique_ptr<Mangler> Mang;
30 std::vector<std::pair<std::string, uint32_t>> AsmSymbols;
basic_symbol_iterator symbol_begin_impl() const override
basic_symbol_iterator symbol_end_impl() const override
Represents either an error or a value T.
IRObjectFile(MemoryBufferRef Object, std::unique_ptr< Module > M)
A Module instance is used to store all the information related to an LLVM module. ...
const GlobalValue * getSymbolGV(DataRefImpl Symb) const
This class is the base class for all object file types.
GlobalValue * getSymbolGV(DataRefImpl Symb)
static ErrorOr< std::unique_ptr< IRObjectFile > > create(MemoryBufferRef Object, LLVMContext &Context)
std::unique_ptr< Module > takeModule()
static ErrorOr< MemoryBufferRef > findBitcodeInMemBuffer(MemoryBufferRef Object)
Finds and returns bitcode in the given memory buffer (which may be either a bitcode file or a native ...
std::error_code printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override
This is an important class for using LLVM in a threaded context.
static bool classof(const Binary *v)
void moveSymbolNext(DataRefImpl &Symb) const override
const Module & getModule() const
static ErrorOr< MemoryBufferRef > findBitcodeInObject(const ObjectFile &Obj)
Finds and returns bitcode embedded in the given object file, or an error code if not found...
This class implements an extremely fast bulk output stream that can only output to a stream...
uint32_t getSymbolFlags(DataRefImpl Symb) const override