15#ifndef LIEF_DWARF_PARAMETER_H
16#define LIEF_DWARF_PARAMETER_H
87 if (T::classof(
this)) {
88 return static_cast<const T*
>(
this);
96 create(std::unique_ptr<details::Parameter> impl);
99 Parameter(std::unique_ptr<details::Parameter> impl);
100 std::unique_ptr<details::Parameter> impl_;
The value is split into several pieces (DW_OP_piece/DW_OP_bit_piece), each one with its own location.
Definition Location.hpp:204
This class represents where the value of a variable or a parameter lives. It interfaces the DWARF loc...
Definition Location.hpp:33
dwarf::RegisterLoc RegisterLoc
Register location of a parameter (see: dwarf::RegisterLoc).
Definition Parameter.hpp:53
std::vector< LocationEntry > locations() const
All the location entries of this parameter.
Parameter(Parameter &&other) noexcept
dwarf::CompositeLocation CompositeLocation
Location of a parameter split across several pieces (see: dwarf::CompositeLocation).
Definition Parameter.hpp:57
KIND
Definition Parameter.hpp:42
@ TEMPLATE_VALUE
DW_TAG_template_value_parameter.
Definition Parameter.hpp:45
@ TEMPLATE_TYPE
DW_TAG_template_type_parameter.
Definition Parameter.hpp:44
@ FORMAL
DW_TAG_formal_parameter.
Definition Parameter.hpp:46
dwarf::Location Location
Location of a parameter (see: dwarf::Location).
Definition Parameter.hpp:50
static std::unique_ptr< Parameter > create(std::unique_ptr< details::Parameter > impl)
std::unique_ptr< Type > type() const
Type of this parameter.
Parameter(const Parameter &)=delete
Parameter & operator=(Parameter &&other) noexcept
std::unique_ptr< Location > location() const
Location of this parameter. For instance it can be a specific register that is not following the call...
std::string_view name() const
Name of the parameter.
const T * as() const
Definition Parameter.hpp:86
Parameter & operator=(const Parameter &)=delete
The value is associated to a register (e.g. DW_OP_reg5).
Definition Location.hpp:90
This class represents a DWARF Type which includes:
Definition DWARF/Type.hpp:68
This class represents a template type parameter.
Definition Parameter.hpp:159
~TemplateType() override=default
static bool classof(const Parameter *P)
Definition Parameter.hpp:162
This class represents a template value parameter.
Definition Parameter.hpp:139
~TemplateValue() override=default
static bool classof(const Parameter *P)
Definition Parameter.hpp:142
#define LIEF_LIFETIMEBOUND
Definition compiler_attributes.hpp:72
Definition DWARF/CompilationUnit.hpp:33
Definition Parameter.hpp:103
Namespace for the DWARF debug format.
Definition DWARF/CompilationUnit.hpp:31
Location associated with the range of addresses where it is valid.
Definition Location.hpp:250
#define LIEF_API
Definition visibility.h:45
#define LIEF_LOCAL
Definition visibility.h:46