7 #ifndef RETDEC_CTYPES_FUNCTION_TYPE_H
8 #define RETDEC_CTYPES_FUNCTION_TYPE_H
39 static std::shared_ptr<FunctionType>
create(
40 const std::shared_ptr<Context> &context,
58 std::shared_ptr<Type>
getParameter(Parameters::size_type n)
const;
A representation of a C call convention.
A representation of a C call convention.
Definition: call_convention.h:19
A representation of a function type.
Definition: function_type.h:26
CallConvention callConvention
Definition: function_type.h:87
virtual void accept(Visitor *v) override
Visitor pattern implementation.
Definition: function_type.cpp:170
FunctionType(const std::shared_ptr< Type > &returnType, const Parameters ¶meters, const CallConvention &callConvention, VarArgness varArgness)
Constructs a new function type.
Definition: function_type.cpp:20
Parameters::size_type getParameterCount() const
Returns the number of parameters.
Definition: function_type.cpp:111
const Parameters & getParameters() const
Returns function type parameters.
Definition: function_type.cpp:119
void setCallConvention(const CallConvention &callConvention)
Sets function type's call convention.
Definition: function_type.cpp:149
parameter_iterator parameter_end()
Returns an iterator past the last parameter.
Definition: function_type.cpp:93
static std::shared_ptr< FunctionType > create(const std::shared_ptr< Context > &context, const std::shared_ptr< Type > &returnType, const Parameters ¶meters, const CallConvention &callConvention=CallConvention(), VarArgness varArgness=VarArgness::IsNotVarArg)
Creates function type.
Definition: function_type.cpp:44
VarArgness varArgness
Definition: function_type.h:88
virtual bool isFunction() const override
Definition: function_type.cpp:165
bool isVarArg() const
Returns true if function takes variable number of arguments, false otherwise.
Definition: function_type.cpp:141
Parameters parameters
Definition: function_type.h:86
Parameters::const_iterator const_parameter_iterator
Definition: function_type.h:30
Parameters::iterator parameter_iterator
Definition: function_type.h:29
VarArgness
Definition: function_type.h:33
const CallConvention & getCallConvention() const
Returns function type's call convention.
Definition: function_type.cpp:157
std::shared_ptr< Type > getParameter(Parameters::size_type n) const
Returns the n-th parameter's type.
Definition: function_type.cpp:132
parameter_iterator parameter_begin()
Returns an iterator to the parameter.
Definition: function_type.cpp:77
std::vector< std::shared_ptr< Type > > Parameters
Definition: function_type.h:28
std::shared_ptr< Type > getReturnType() const
Returns function's return type.
Definition: function_type.cpp:69
std::shared_ptr< Type > returnType
Definition: function_type.h:85
A base class of all C types.
Definition: type.h:22
A base class of all C-types' visitors.
Definition: visitor.h:33
A base class of all C types.
Definition: archive_wrapper.h:19