13#ifndef LLVM_OBJECT_SYMBOLICFILE_H 
   14#define LLVM_OBJECT_SYMBOLICFILE_H 
   47template <
typename OStream>
 
   49  OS << 
"(" << 
format(
"0x%08" PRIxPTR, 
D.p) << 
" (" << 
format(
"0x%08x", 
D.d.a)
 
   50     << 
", " << 
format(
"0x%08x", 
D.d.b) << 
"))";
 
 
   57  return std::memcmp(&a, &b, 
sizeof(
DataRefImpl)) == 0;
 
 
   67  return std::memcmp(&a, &b, 
sizeof(
DataRefImpl)) < 0;
 
 
   82  const content_type *
operator->()
 const { 
return &Current; }
 
   84  const content_type &
operator*()
 const { 
return Current; }
 
   87    return Current == other.Current;
 
 
   91    return !(*
this == other);
 
 
 
  181    return v->isSymbolic();
 
 
 
  189    : SymbolPimpl(SymbolP), OwningObject(Owner) {}
 
 
  192  return SymbolPimpl == 
Other.SymbolPimpl;
 
 
  196  return SymbolPimpl < 
Other.SymbolPimpl;
 
 
  200  return OwningObject->moveSymbolNext(SymbolPimpl);
 
 
  204  return OwningObject->printSymbolName(OS, SymbolPimpl);
 
 
  208  return OwningObject->getSymbolFlags(SymbolPimpl);
 
 
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
This is an important class for using LLVM in a threaded context.
The instances of the Type class are immutable: once they are created, they are never changed.
A range adaptor for a pair of iterators.
Expected< uint32_t > getFlags() const
Get symbol flags (bitwise OR of SymbolRef::Flags)
const SymbolicFile * getObject() const
DataRefImpl getRawDataRefImpl() const
bool operator==(const BasicSymbolRef &Other) const
Error printName(raw_ostream &OS) const
bool operator<(const BasicSymbolRef &Other) const
Binary(unsigned int Type, MemoryBufferRef Source)
static bool classof(const Binary *v)
virtual basic_symbol_iterator symbol_begin() const =0
iterator_range< basic_symbol_iterator > basic_symbol_iterator_range
static Expected< std::unique_ptr< SymbolicFile > > createSymbolicFile(MemoryBufferRef Object, llvm::file_magic Type, LLVMContext *Context, bool InitContent=true)
virtual bool is64Bit() const =0
virtual basic_symbol_iterator symbol_end() const =0
SymbolicFile(unsigned int Type, MemoryBufferRef Source)
static Expected< std::unique_ptr< SymbolicFile > > createSymbolicFile(MemoryBufferRef Object)
virtual Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const =0
virtual Expected< uint32_t > getSymbolFlags(DataRefImpl Symb) const =0
basic_symbol_iterator_range symbols() const
virtual void moveSymbolNext(DataRefImpl &Symb) const =0
const content_type & operator*() const
const content_type * operator->() const
std::forward_iterator_tag iterator_category
bool operator==(const content_iterator &other) const
content_iterator & operator++()
bool operator!=(const content_iterator &other) const
const ImportDirectoryEntryRef value_type
std::ptrdiff_t difference_type
content_iterator(content_type symb)
This class implements an extremely fast bulk output stream that can only output to a stream.
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
bool operator<(const ELFSymbolRef &A, const ELFSymbolRef &B)
content_iterator< BasicSymbolRef > basic_symbol_iterator
bool operator!=(const DataRefImpl &a, const DataRefImpl &b)
bool operator==(const SectionedAddress &LHS, const SectionedAddress &RHS)
LLVM_ABI raw_ostream & operator<<(raw_ostream &OS, const SectionedAddress &Addr)
This is an optimization pass for GlobalISel generic memory operations.
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
file_magic - An "enum class" enumeration of file types based on magic (the first N bytes of the file)...
@ unknown
Unrecognized file.
struct llvm::object::DataRefImpl::@005117267142344013370254144343227032034000327225 d