15#ifndef LIEF_DWARF_PARAMETER_H
16#define LIEF_DWARF_PARAMETER_H
49 enum class Type : uint8_t {
59 if (T::classof(
this)) {
60 return static_cast<const T*
>(
this);
97 std::unique_ptr<Type>
type()
const;
104 const T*
as()
const {
105 if (T::classof(
this)) {
106 return static_cast<const T*
>(
this);
114 std::unique_ptr<Parameter>
create(std::unique_ptr<details::Parameter> impl);
117 Parameter(std::unique_ptr<details::Parameter> impl);
118 std::unique_ptr<details::Parameter> impl_;
Type
Definition Parameter.hpp:49
@ UNKNOWN
Definition Parameter.hpp:50
@ REG
Definition Parameter.hpp:51
const T * as() const
Definition Parameter.hpp:58
Type type
Definition Parameter.hpp:65
Location(Type ty)
Definition Parameter.hpp:53
static bool classof(const Location *loc)
Definition Parameter.hpp:76
uint64_t id
DWARF id of the register.
Definition Parameter.hpp:81
RegisterLoc(uint64_t reg_id)
Definition Parameter.hpp:71
std::string name() const
Name of the parameter.
Parameter(Parameter &&other)
Parameter & operator=(Parameter &&other)
KIND
Definition Parameter.hpp:39
@ TEMPLATE_VALUE
DW_TAG_template_value_parameter.
Definition Parameter.hpp:42
@ TEMPLATE_TYPE
DW_TAG_template_type_parameter.
Definition Parameter.hpp:41
@ UNKNOWN
Definition Parameter.hpp:40
@ FORMAL
DW_TAG_formal_parameter.
Definition Parameter.hpp:43
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
std::unique_ptr< Location > location() const
Location of this parameter. For instance it can be a specific register that is not following the call...
const T * as() const
Definition Parameter.hpp:104
Parameter & operator=(const Parameter &)=delete
This class represents a DWARF Type which includes:
Definition DWARF/Type.hpp:64
This class represents a template type parameter.
Definition Parameter.hpp:177
~TemplateType() override=default
static bool classof(const Parameter *P)
Definition Parameter.hpp:180
This class represents a template value parameter.
Definition Parameter.hpp:157
~TemplateValue() override=default
static bool classof(const Parameter *P)
Definition Parameter.hpp:160
Definition DWARF/CompilationUnit.hpp:30
Definition Parameter.hpp:121
Namespace for the DWARF debug format.
Definition DWARF/CompilationUnit.hpp:28
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:41
#define LIEF_LOCAL
Definition visibility.h:42