14 #ifndef LLVM_OBJECT_SYMBOLICFILE_H
15 #define LLVM_OBJECT_SYMBOLICFILE_H
35 return std::memcmp(&a, &b,
sizeof(
DataRefImpl)) == 0;
45 return std::memcmp(&a, &b,
sizeof(
DataRefImpl)) < 0;
48 template <
class content_type>
50 :
public std::iterator<std::forward_iterator_tag, content_type> {
56 const content_type *
operator->()
const {
return &Current; }
58 const content_type &
operator*()
const {
return Current; }
61 return Current == other.Current;
65 return !(*
this == other);
166 : SymbolPimpl(SymbolP), OwningObject(Owner) {}
169 return SymbolPimpl == Other.SymbolPimpl;
173 return SymbolPimpl < Other.SymbolPimpl;
bool operator==(const BasicSymbolRef &Other) const
Represents either an error or a value T.
DataRefImpl getRawDataRefImpl() const
iterator_range< basic_symbol_iterator > basic_symbol_iterator_range
bool operator<(const DataRefImpl &a, const DataRefImpl &b)
static ErrorOr< std::unique_ptr< SymbolicFile > > createSymbolicFile(MemoryBufferRef Object, sys::fs::file_magic Type, LLVMContext *Context)
SymbolicFile(unsigned int Type, MemoryBufferRef Source)
bool operator<(const BasicSymbolRef &Other) const
bool operator!=(const DataRefImpl &a, const DataRefImpl &b)
virtual basic_symbol_iterator symbol_begin_impl() const =0
static ErrorOr< std::unique_ptr< SymbolicFile > > createSymbolicFile(MemoryBufferRef Object)
basic_symbol_iterator symbol_begin() const
bool operator!=(const content_iterator &other) const
content_iterator(content_type symb)
virtual uint32_t getSymbolFlags(DataRefImpl Symb) const =0
The instances of the Type class are immutable: once they are created, they are never changed...
virtual basic_symbol_iterator symbol_end_impl() const =0
This is an important class for using LLVM in a threaded context.
std::error_code printName(raw_ostream &OS) const
uint32_t getFlags() const
Get symbol flags (bitwise OR of SymbolRef::Flags)
basic_symbol_iterator symbol_end() const
content_iterator< BasicSymbolRef > basic_symbol_iterator
bool operator==(const DataRefImpl &a, const DataRefImpl &b)
content_iterator & operator++()
A range adaptor for a pair of iterators.
basic_symbol_iterator_range symbols() const
bool operator==(const content_iterator &other) const
file_magic - An "enum class" enumeration of file types based on magic (the first N bytes of the file)...
virtual std::error_code printSymbolName(raw_ostream &OS, DataRefImpl Symb) const =0
struct llvm::object::DataRefImpl::@97 d
const SymbolicFile * getObject() const
This is a value type class that represents a single symbol in the list of symbols in the object file...
virtual void moveSymbolNext(DataRefImpl &Symb) const =0
const content_type & operator*() const
const content_type * operator->() const
This class implements an extremely fast bulk output stream that can only output to a stream...
StringRef - Represent a constant reference to a string, i.e.
static bool classof(const Binary *v)