Ghidra 11.3.2
Ghidra internal decompiler documentation.
|
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. | |
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 actionalt, flags, ghidra::Varnode::getDef(), indirect, indirectalt, ghidra::PcodeOp::isMarker(), ghidra::Varnode::loneDescend(), and vn.
Referenced by ghidra::Funcdata::checkCallDoubleUse(), and ghidra::Funcdata::onlyOpUse().