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

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

#include <fspec.hh>

Inheritance diagram for ParameterBasic:
ProtoParameter

Public Member Functions

 ParameterBasic (const string &nm, const Address &ad, Datatype *tp, uint4 fl)
 Construct from components.
 
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 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 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 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 properties. Varnode::mark is co-opted to hold the size-lock flag.
 

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* 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 ProtoParameter.

◆ overrideSizeLockType()

void 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 ProtoParameter.

References Datatype::getSize(), isSizeTypeLocked(), and type.

◆ resetSizeLockType()

void 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 ProtoParameter.

References TypeFactory::getBase(), Datatype::getMetatype(), Datatype::getSize(), type, and TYPE_UNKNOWN.


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