decompiler  1.0.0
Public Member Functions | Private Attributes | List of all members
ghidra::ParameterBasic Class Reference

A stand-alone parameter with no backing symbol. More...

#include <fspec.hh>

Inheritance diagram for ghidra::ParameterBasic:
ghidra::ProtoParameter

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 DatatypegetType (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 ProtoParameterclone (void) const
 Clone the parameter.
 
virtual SymbolgetSymbol (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.
 
Datatypetype
 Data-type of the parameter.
 
uint4 flags
 Lock and other properties from ParameterPieces flags.
 

Detailed Description

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.

Member Function Documentation

◆ getSymbol()

virtual Symbol* ghidra::ParameterBasic::getSymbol ( void  ) const
inlinevirtual

Retrieve the formal Symbol associated with this parameter.

If there is no backing symbol an exception is thrown

Returns
the backing Symbol object

Implements ghidra::ProtoParameter.

References ghidra::LowlevelError::LowlevelError().

◆ overrideSizeLockType()

void ghidra::ParameterBasic::overrideSizeLockType ( Datatype ct)
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.

Parameters
ctis the overriding data-type

Implements ghidra::ProtoParameter.

References ghidra::Datatype::getSize(), and ghidra::AddrSpace::type.

◆ resetSizeLockType()

void ghidra::ParameterBasic::resetSizeLockType ( TypeFactory factory)
virtual

Clear this parameter's data-type preserving any size-lock.

The data-type is converted to a TYPE_UNKNOWN of the same size

Parameters
factoryis the TypeFactory that will construct the unknown data-type

Implements ghidra::ProtoParameter.

References ghidra::TypeFactory::getBase(), ghidra::AddrSpace::type, and ghidra::TYPE_UNKNOWN.


The documentation for this class was generated from the following files: