| 
    decompiler
    1.0.0
    
   | 
 
A function parameter viewed as a name, data-type, and storage address. More...
#include <fspec.hh>
  
 Public Member Functions | |
| ProtoParameter (void) | |
| Constructor.  | |
| virtual | ~ProtoParameter (void) | 
| Destructor.  | |
| virtual const string & | getName (void) const =0 | 
| Get the name of the parameter ("" for return value)  | |
| virtual Datatype * | getType (void) const =0 | 
| Get the data-type associate with this.  | |
| virtual Address | getAddress (void) const =0 | 
| Get the storage address for this parameter.  | |
| virtual int4 | getSize (void) const =0 | 
| Get the number of bytes occupied by this parameter.  | |
| virtual bool | isTypeLocked (void) const =0 | 
| Is the parameter data-type locked.  | |
| virtual bool | isNameLocked (void) const =0 | 
| Is the parameter name locked.  | |
| virtual bool | isSizeTypeLocked (void) const =0 | 
| Is the size of the parameter locked.  | |
| virtual bool | isThisPointer (void) const =0 | 
| Is this the "this" pointer for a class method.  | |
| virtual bool | isIndirectStorage (void) const =0 | 
| Is this really a pointer to the true parameter.  | |
| virtual bool | isHiddenReturn (void) const =0 | 
| Is this a pointer to storage for a return value.  | |
| virtual bool | isNameUndefined (void) const =0 | 
| Is the name of this parameter undefined.  | |
| virtual void | setTypeLock (bool val)=0 | 
| Toggle the lock on the data-type.  | |
| virtual void | setNameLock (bool val)=0 | 
| Toggle the lock on the name.  | |
| virtual void | setThisPointer (bool val)=0 | 
| Toggle whether this is the "this" pointer for a class method.  | |
| virtual void | overrideSizeLockType (Datatype *ct)=0 | 
| Change (override) the data-type of a size-locked parameter.  More... | |
| virtual void | resetSizeLockType (TypeFactory *factory)=0 | 
| Clear this parameter's data-type preserving any size-lock.  More... | |
| virtual ProtoParameter * | clone (void) const =0 | 
| Clone the parameter.  | |
| virtual Symbol * | getSymbol (void) const =0 | 
| Retrieve the formal Symbol associated with this parameter.  More... | |
| 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... | |
A function parameter viewed as a name, data-type, and storage address.
This is the base class, with derived classes determining what is backing up the information, whether is it a formal Symbol or just internal storage. Both input parameters and return values can be represented with this object.
      
  | 
  pure virtual | 
Retrieve the formal Symbol associated with this parameter.
If there is no backing symbol an exception is thrown
Implemented in ParameterSymbol, and ParameterBasic.
Referenced by PrintC::emitPrototypeInputs().
      
  | 
  inline | 
Compare storage location and data-type for inequality.
| op2 | is the parameter to compare with this | 
      
  | 
  inline | 
Compare storage location and data-type for equality.
| op2 | is the parameter to compare with this | 
References getAddress(), and getType().
      
  | 
  pure 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 | 
Implemented in ParameterSymbol, and ParameterBasic.
Referenced by FuncProto::updateOutputTypes().
      
  | 
  pure 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 | 
Implemented in ParameterSymbol, and ParameterBasic.
Referenced by FuncProto::clearUnlockedOutput().
 1.8.11