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

A parameter with a formal backing Symbol. More...

#include <fspec.hh>

Inheritance diagram for ParameterSymbol:
ProtoParameter

Public Member Functions

 ParameterSymbol (void)
 Constructor.
 
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

Symbolsym
 Backing Symbol for this parameter.
 

Friends

class ProtoStoreSymbol
 

Detailed Description

A parameter with a formal backing Symbol.

Input parameters generally have a symbol associated with them. This class holds a reference to the Symbol object and pulls the relevant parameter information off of it.

Member Function Documentation

◆ getSymbol()

Symbol * ParameterSymbol::getSymbol ( void  ) const
virtual

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.

References sym.

◆ overrideSizeLockType()

void ParameterSymbol::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 Symbol::getScope(), Scope::overrideSizeLockType(), and sym.

◆ resetSizeLockType()

void ParameterSymbol::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 Symbol::getScope(), Scope::resetSizeLockType(), and sym.


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