|
Ghidra 11.4.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, ghidra::PcodeOp::code(), ghidra::CPUI_COPY, flags, ghidra::Varnode::getDef(), ghidra::PcodeOp::getIn(), indirect, indirectalt, ghidra::PcodeOp::isIncidentalCopy(), ghidra::PcodeOp::isMarker(), ghidra::Varnode::loneDescend(), and vn.
Referenced by ghidra::Funcdata::checkCallDoubleUse(), and ghidra::Funcdata::onlyOpUse().