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

A class that holds a data-type traversal state during type propagation. More...

#include <coreaction.hh>

Public Member Functions

 PropagationState (Varnode *v)
 Constructor. More...
 
void step (void)
 Advance to the next propagation edge. More...
 
bool valid (void) const
 Return true if there are edges left to iterate.
 

Public Attributes

Varnodevn
 The root Varnode.
 
list< PcodeOp * >::const_iterator iter
 Iterator to current descendant being enumerated.
 
PcodeOpop
 The current descendant or the defining PcodeOp.
 
int4 inslot
 Slot holding Varnode for descendant PcodeOp.
 
int4 slot
 Current edge relative to current PcodeOp.
 

Detailed Description

A class that holds a data-type traversal state during type propagation.

For a given Varnode, this class iterates all the possible edges its data-type might propagate through.

Constructor & Destructor Documentation

◆ PropagationState()

PropagationState::PropagationState ( Varnode v)

Constructor.

Parameters
vis the root Varnode to iterate over

References Varnode::beginDescend(), Varnode::endDescend(), Varnode::getDef(), PcodeOp::getOut(), and PcodeOp::getSlot().

Member Function Documentation

◆ step()

void PropagationState::step ( void  )

Advance to the next propagation edge.

At the high level, this iterates through all the descendant PcodeOps of the root Varnode, then the defining PcodeOp. At the low level, this iterates from the output Varnode of the current PcodeOp then through all the input Varnodes

References Varnode::endDescend(), Varnode::getDef(), PcodeOp::getOut(), and PcodeOp::getSlot().

Referenced by ActionInferTypes::propagateOneType().


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