15#ifndef LIEF_DWARF_PARAMETER_H
16#define LIEF_DWARF_PARAMETER_H
49 enum class Type : uint8_t {
58 if (T::classof(
this)) {
59 return static_cast<const T*
>(
this);
95 std::unique_ptr<Type>
type()
const;
102 const T*
as()
const {
103 if (T::classof(
this)) {
104 return static_cast<const T*
>(
this);
112 create(std::unique_ptr<details::Parameter> impl);
115 Parameter(std::unique_ptr<details::Parameter> impl);
116 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:57
Type type
Definition Parameter.hpp:64
Location(Type ty)
Definition Parameter.hpp:53
static bool classof(const Location *loc)
Definition Parameter.hpp:74
uint64_t id
DWARF id of the register.
Definition Parameter.hpp:79
RegisterLoc(uint64_t reg_id)
Definition Parameter.hpp:70
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
@ 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:102
Parameter & operator=(const Parameter &)=delete
This class represents a DWARF Type which includes:
Definition DWARF/Type.hpp:65
This class represents a template type parameter.
Definition Parameter.hpp:175
~TemplateType() override=default
static bool classof(const Parameter *P)
Definition Parameter.hpp:178
This class represents a template value parameter.
Definition Parameter.hpp:155
~TemplateValue() override=default
static bool classof(const Parameter *P)
Definition Parameter.hpp:158
Definition DWARF/CompilationUnit.hpp:30
Definition Parameter.hpp:119
Namespace for the DWARF debug format.
Definition DWARF/CompilationUnit.hpp:28
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:43
#define LIEF_LOCAL
Definition visibility.h:44