cfunc_parentee_t Struct Reference

Class to traverse the whole function. More...

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 types of parent node. More...
 
- Public Member Functions inherited from ctree_visitor_t
bool maintain_parents (void) const
 Should the parent information by maintained?
 
bool must_prune (void) const
 Should the traversal skip the children of the current item?
 
bool must_restart (void) const
 Should the traversal restart?
 
bool is_postorder (void) const
 Should the leave...() functions be called?
 
bool only_insns (void) const
 Should all expressions be automatically pruned?
 
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.
 
void set_restart (void)
 Restart the travesal. Meaningful only in apply_to_exprs()
 
void clr_restart (void)
 Do not restart. This is an internal function, no need to call it.
 
 ctree_visitor_t (int _flags)
 Constructor. More...
 
 DEFINE_VIRTUAL_DTOR (ctree_visitor_t)
 
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.
 
cinsn_tparent_insn (void)
 Get parent of the current item as a statement.
 
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 This is a visitor function which should be overridden by a derived class to do some useful work. More...
 
virtual int leave_expr (cexpr_t *)
 Visit an expression after having visited its children This is a visitor function which should be overridden by a derived class to do some useful work. More...
 

Public Attributes

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

Detailed Description

Class to traverse the whole function.

Definition at line 3480 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 8421 of file hexrays.hpp.

References hexdsp.