decompiler
1.0.0
|
A stand-alone parameter with no backing symbol. More...
#include <fspec.hh>
Public Member Functions | |
ParameterBasic (const string &nm, const Address &ad, Datatype *tp, uint4 fl) | |
Construct from components. | |
ParameterBasic (Datatype *tp) | |
Construct a void parameter. | |
virtual const string & | getName (void) const |
Get the name of the parameter ("" for return value) | |
virtual Datatype * | getType (void) const |
Get the data-type associate with this. | |
virtual Address | getAddress (void) const |
Get the storage address for this parameter. | |
virtual int4 | getSize (void) const |
Get the number of bytes occupied by this parameter. | |
virtual bool | isTypeLocked (void) const |
Is the parameter data-type locked. | |
virtual bool | isNameLocked (void) const |
Is the parameter name locked. | |
virtual bool | isSizeTypeLocked (void) const |
Is the size of the parameter locked. | |
virtual bool | isThisPointer (void) const |
Is this the "this" pointer for a class method. | |
virtual bool | isIndirectStorage (void) const |
Is this really a pointer to the true parameter. | |
virtual bool | isHiddenReturn (void) const |
Is this a pointer to storage for a return value. | |
virtual bool | isNameUndefined (void) const |
Is the name of this parameter undefined. | |
virtual void | setTypeLock (bool val) |
Toggle the lock on the data-type. | |
virtual void | setNameLock (bool val) |
Toggle the lock on the name. | |
virtual void | setThisPointer (bool val) |
Toggle whether this is the "this" pointer for a class method. | |
virtual void | overrideSizeLockType (Datatype *ct) |
Change (override) the data-type of a size-locked parameter. More... | |
virtual void | resetSizeLockType (TypeFactory *factory) |
Clear this parameter's data-type preserving any size-lock. More... | |
virtual ProtoParameter * | clone (void) const |
Clone the parameter. | |
virtual Symbol * | getSymbol (void) const |
Retrieve the formal Symbol associated with this parameter. More... | |
Public Member Functions inherited from ghidra::ProtoParameter | |
ProtoParameter (void) | |
Constructor. | |
virtual | ~ProtoParameter (void) |
Destructor. | |
bool | operator== (const ProtoParameter &op2) const |
Compare storage location and data-type for equality. More... | |
bool | operator!= (const ProtoParameter &op2) const |
Compare storage location and data-type for inequality. More... | |
Private Attributes | |
string | name |
The name of the parameter, "" for undefined or return value parameters. | |
Address | addr |
Storage address of the parameter. | |
Datatype * | type |
Data-type of the parameter. | |
uint4 | flags |
Lock and other properties from ParameterPieces flags. | |
A stand-alone parameter with no backing symbol.
Name, data-type, and storage location is stored internally to the object. This is suitable for return values, function pointer prototypes, or functions that haven't been fully analyzed.
|
inlinevirtual |
Retrieve the formal Symbol associated with this parameter.
If there is no backing symbol an exception is thrown
Implements ghidra::ProtoParameter.
References ghidra::LowlevelError::LowlevelError().
|
virtual |
Change (override) the data-type of a size-locked parameter.
The original parameter must have a type-lock and TYPE_UNKNOWN data-type. The size-lock is preserved and this can be cleared back to its TYPE_UNKNOWN state.
ct | is the overriding data-type |
Implements ghidra::ProtoParameter.
References ghidra::Datatype::getSize(), and ghidra::AddrSpace::type.
|
virtual |
Clear this parameter's data-type preserving any size-lock.
The data-type is converted to a TYPE_UNKNOWN of the same size
factory | is the TypeFactory that will construct the unknown data-type |
Implements ghidra::ProtoParameter.
References ghidra::TypeFactory::getBase(), ghidra::AddrSpace::type, and ghidra::TYPE_UNKNOWN.