decompiler
1.0.0
|
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... | |
Public Attributes | |
Varnode * | vn |
The root Varnode. | |
list< PcodeOp * >::const_iterator | iter |
Iterator to current descendant being enumerated. | |
PcodeOp * | op |
The current descendant or the defining PcodeOp. | |
int4 | inslot |
Slot holding Varnode for descendant PcodeOp. | |
int4 | slot |
Current edge relative to current PcodeOp. | |
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.
PropagationState::PropagationState | ( | Varnode * | v | ) |
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 PcodeOp::getSlot().
Referenced by ActionInferTypes::propagateOneType().