Hex-Rays logo State-of-the-art binary code analysis tools
email icon
cfunc_parentee_t Struct Reference

Class to traverse the whole function. More...

#include <hexrays.hpp>

Inheritance diagram for cfunc_parentee_t:
ctree_parentee_t ctree_visitor_t

Public Member Functions

 cfunc_parentee_t (cfunc_t *f, bool post=false)
 
bool calc_rvalue_type (tinfo_t *target, const cexpr_t *e)
 Calculate rvalue type. More...
 
- Public Member Functions inherited from ctree_parentee_t
 ctree_parentee_t (bool post=false)
 
bool recalc_parent_types (void)
 Recalculate type of parent nodes. More...
 
cblock_tget_block ()
 Get pointer to the parent block of the currently visited item. More...
 
- Public Member Functions inherited from ctree_visitor_t
bool maintain_parents (void) const
 Should the parent information by maintained? More...
 
bool must_prune (void) const
 Should the traversal skip the children of the current item? More...
 
bool must_restart (void) const
 Should the traversal restart? More...
 
bool is_postorder (void) const
 Should the leave...() functions be called? More...
 
bool only_insns (void) const
 Should all expressions be automatically pruned? More...
 
void prune_now (void)
 Prune children. More...
 
void clr_prune (void)
 Do not prune children. This is an internal function, no need to call it. More...
 
void set_restart (void)
 Restart the travesal. Meaningful only in apply_to_exprs() More...
 
void clr_restart (void)
 Do not restart. This is an internal function, no need to call it. More...
 
 ctree_visitor_t (int _flags)
 Constructor. More...
 
int apply_to (citem_t *item, citem_t *parent)
 Traverse ctree. More...
 
int apply_to_exprs (citem_t *item, citem_t *parent)
 Traverse only expressions. More...
 
cexpr_tparent_expr (void)
 Get parent of the current item as an expression. More...
 
cinsn_tparent_insn (void)
 Get parent of the current item as a statement. More...
 
virtual int visit_insn (cinsn_t *)
 Visit a statement. More...
 
virtual int visit_expr (cexpr_t *)
 Visit an expression. More...
 
virtual int leave_insn (cinsn_t *)
 Visit a statement after having visited its children. More...
 
virtual int leave_expr (cexpr_t *)
 Visit an expression after having visited its children. More...
 

Public Attributes

cfunc_tfunc
 Pointer to current function. More...
 
- Public Attributes inherited from ctree_visitor_t
int cv_flags
 Ctree visitor property bits More...
 
parents_t parents
 Vector of parents of the current item. More...
 

Detailed Description

Class to traverse the whole function.

Definition at line 5837 of file hexrays.hpp.

Constructor & Destructor Documentation

◆ cfunc_parentee_t()

cfunc_parentee_t::cfunc_parentee_t ( cfunc_t f,
bool  post = false 
)

Definition at line 5840 of file hexrays.hpp.

Member Function Documentation

◆ calc_rvalue_type()

bool cfunc_parentee_t::calc_rvalue_type ( tinfo_t *  target,
const cexpr_t e 
)

Calculate rvalue type.

This function tries to determine the type of the specified item based on its context. For example, if the current expression is the right side of an assignment operator, the type of its left side will be returned. This function can be used to determine the 'best' type of the specified expression.

Parameters
[in]eexpression to determine the desired type
[out]target'best' type of the expression will be returned here
Returns
false if failed

Definition at line 11441 of file hexrays.hpp.

Member Data Documentation

◆ func

cfunc_t* cfunc_parentee_t::func

Pointer to current function.

Definition at line 5839 of file hexrays.hpp.