|
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().
1.8.13