15#ifndef LIEF_DWARF_VARIABLE_H
16#define LIEF_DWARF_VARIABLE_H
56 template <
typename RefT>
62 Iterator(std::unique_ptr<details::VariableIt> impl);
88 return static_cast<const Iterator*
>(
this)->
operator*();
92 std::unique_ptr<details::VariableIt> impl_;
95 Variable(std::unique_ptr<details::Variable> impl);
129 std::unique_ptr<Type>
type()
const;
132 std::unique_ptr<Scope>
scope()
const;
136 std::unique_ptr<details::Variable> impl_;
Definition Variable.hpp:47
pointer operator->() const
Definition Variable.hpp:51
Definition Variable.hpp:38
Iterator operator++(int)
Definition Variable.hpp:79
Iterator operator--(int)
Definition Variable.hpp:73
std::ptrdiff_t difference_type
Definition Variable.hpp:42
details::VariableIt implementation
Definition Variable.hpp:45
PointerProxy operator->() const
Definition Variable.hpp:87
std::bidirectional_iterator_tag iterator_category
Definition Variable.hpp:40
Iterator(const Iterator &)
std::unique_ptr< Variable > operator*() const
std::unique_ptr< Variable > value_type
Definition Variable.hpp:41
Iterator(Iterator &&) noexcept
std::unique_ptr< Variable > & reference
Definition Variable.hpp:44
This class represents a DWARF variable which can be owned by a dwarf::Function or a dwarf::Compilatio...
Definition Variable.hpp:36
std::string linkage_name() const
The name of the variable which is used for linking (DW_AT_linkage_name).
Variable(std::unique_ptr< details::Variable > impl)
bool is_constexpr() const
Whether it's a constexpr variable.
std::unique_ptr< Type > type() const
Return the type of this variable.
debug_location_t debug_location() const
The original source location where the variable is defined.
std::unique_ptr< Scope > scope() const
Return the scope in which this variable is defined.
std::string name() const
Name of the variable (usually demangled)
result< int64_t > address() const
Address of the variable.
result< uint64_t > size() const
Return the size of the variable (or a lief_errors if it can't be resolved).
LIEF namespace.
Definition Abstract/Binary.hpp:32
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75
This structure holds a debug location (source filename & line)
Definition debug_loc.hpp:23
#define LIEF_API
Definition visibility.h:41