decompiler
1.0.0
|
Node for a forward traversal of a Varnode expression. More...
#include <varnode.hh>
Public Types | |
enum | { actionalt = 1, indirect = 2, indirectalt = 4, lsb_truncated = 8, concat_high = 0x10 } |
Public Member Functions | |
TraverseNode (const Varnode *v, uint4 f) | |
Constructor. | |
Static Public Member Functions | |
static bool | isAlternatePathValid (const Varnode *vn, uint4 flags) |
Return true if the alternate path looks more valid than the main path. More... | |
Public Attributes | |
const Varnode * | vn |
Varnode at the point of traversal. | |
uint4 | flags |
Flags associated with the node. | |
Node for a forward traversal of a Varnode expression.
anonymous enum |
|
static |
Return true if the alternate path looks more valid than the main path.
Two different paths from a common Varnode each terminate at a CALL, CALLIND, or RETURN. Evaluate which path most likely represents actual parameter/return value passing, based on traversal information about each path.
vn | is the Varnode terminating the alternate path |
flags | indicates traversals for both paths |
References ghidra::PcodeOp::code(), ghidra::CPUI_SUBPIECE, ghidra::Varnode::getDef(), ghidra::PcodeOp::getIn(), ghidra::Varnode::getOffset(), ghidra::Varnode::getSize(), ghidra::Varnode::isInput(), ghidra::PcodeOp::isMarker(), ghidra::Varnode::isWritten(), and ghidra::Varnode::loneDescend().
Referenced by ghidra::Funcdata::checkCallDoubleUse(), and ghidra::Funcdata::onlyOpUse().