|
IDA C++ SDK 9.2
|
Ctree item: statement. More...
#include <hexrays.hpp>
Public Member Functions | |
| cinsn_t () | |
| cinsn_t (const cinsn_t &r) | |
| void | swap (cinsn_t &r) |
| cinsn_t & | operator= (const cinsn_t &r) |
| cinsn_t &hexapi | assign (const cinsn_t &r) |
| DECLARE_COMPARISONS (cinsn_t) | |
| ~cinsn_t () | |
| void hexapi | replace_by (cinsn_t *r) |
| Replace the statement. | |
| void hexapi | cleanup () |
| Cleanup the statement. | |
| void | zero () |
| Overwrite with zeroes without cleaning memory or deleting children. | |
| cinsn_t &hexapi | new_insn (ea_t insn_ea) |
| Create a new statement. | |
| cif_t &hexapi | create_if (cexpr_t *cnd) |
| Create a new if-statement. | |
| void hexapi | print (int indent, vc_printer_t &vp, use_curly_t use_curly=CALC_CURLY_BRACES) const |
| Print the statement into many lines. | |
| void hexapi | print1 (qstring *vout, const cfunc_t *func) const |
| Print the statement into one line. | |
| bool hexapi | is_ordinary_flow () const |
| Check if the statement passes execution to the next statement. | |
| bool hexapi | contains_insn (ctype_t type, int times=1) const |
| Check if the statement contains a statement of the specified type. | |
| bool hexapi | collect_free_breaks (cinsnptrvec_t *breaks) |
Collect free break statements. | |
| bool hexapi | collect_free_continues (cinsnptrvec_t *continues) |
Collect free continue statements. | |
| bool | contains_free_break () const |
Check if the statement has free break statements. | |
| bool | contains_free_continue () const |
Check if the statement has free continue statements. | |
| const char *hexapi | dstr () const |
| Public Member Functions inherited from citem_t | |
| citem_t (ctype_t o=cot_empty) | |
| void | swap (citem_t &r) |
| Swap two citem_t. | |
| bool | is_expr () const |
| Is an expression? | |
| bool hexapi | contains_expr (const cexpr_t *e) const |
| Does the item contain an expression? | |
| bool hexapi | contains_label () const |
| Does the item contain a label? | |
| const citem_t *hexapi | find_parent_of (const citem_t *item) const |
| Find parent of the specified item. | |
| citem_t * | find_parent_of (const citem_t *item) |
| citem_t *hexapi | find_closest_addr (ea_t _ea) |
| void | print1 (qstring *vout, const cfunc_t *func) const |
| Print item into one line. | |
| ~citem_t () | |
Public Attributes | |
| union { | |
| cblock_t * cblock | |
| details of block-statement More... | |
| cexpr_t * cexpr | |
| details of expression-statement More... | |
| cif_t * cif | |
| details of if-statement More... | |
| cfor_t * cfor | |
| details of for-statement More... | |
| cwhile_t * cwhile | |
| details of while-statement More... | |
| cdo_t * cdo | |
| details of do-statement More... | |
| cswitch_t * cswitch | |
| details of switch-statement More... | |
| creturn_t * creturn | |
| details of return-statement More... | |
| cgoto_t * cgoto | |
| details of goto-statement More... | |
| casm_t * casm | |
| details of asm-statement More... | |
| ctry_t * ctry | |
| details of try-statement More... | |
| cthrow_t * cthrow | |
| details of throw-statement More... | |
| }; | |
| Public Attributes inherited from citem_t | |
| ea_t | ea = BADADDR |
| address that corresponds to the item. may be BADADDR | |
| ctype_t | op |
| item type | |
| int | label_num = -1 |
| label number. | |
| int | index = -1 |
| an index in cfunc_t::treeitems. | |
Ctree item: statement.
Depending on the exact statement type, various fields of the union are used.
|
inline |
|
inline |
|
inline |
| cinsn_t::DECLARE_COMPARISONS | ( | cinsn_t | ) |
Replace the statement.
The children of the statement are abandoned (not freed). The statement pointed by 'r' is moved to 'this' statement
| r | the source statement. It is deleted after being copied |
|
inline |
Cleanup the statement.
This function properly deletes all children and sets the item type to cit_empty.
|
inline |
Overwrite with zeroes without cleaning memory or deleting children.
Create a new statement.
The current statement must be a block. The new statement will be appended to it.
| insn_ea | statement address |
Create a new if-statement.
The current statement must be a block. The new statement will be appended to it.
| cnd | if condition. It will be deleted after being copied. |
|
inline |
Print the statement into many lines.
| indent | indention (number of spaces) for the statement |
| vp | printer helper class which will receive the generated text. |
| use_curly | if the statement is a block, how should curly braces be printed. |
Print the statement into one line.
Currently this function is not available.
| vout | output buffer |
| func | parent function. This argument is used to find out the referenced variable names. |
|
inline |
Check if the statement passes execution to the next statement.
Check if the statement contains a statement of the specified type.
| type | statement opcode to look for |
| times | how many times TYPE should be present |
|
inline |
Collect free break statements.
This function finds all free break statements within the current statement. A break statement is free if it does not have a loop or switch parent that that is also within the current statement.
| breaks | pointer to the variable where the vector of all found free break statements is returned. This argument can be nullptr. |
break statements have been found
|
inline |
Collect free continue statements.
This function finds all free continue statements within the current statement. A continue statement is free if it does not have a loop parent that that is also within the current statement.
| continues | pointer to the variable where the vector of all found free continue statements is returned. This argument can be nullptr. |
continue statements have been found
|
inline |
Check if the statement has free break statements.
|
inline |
Check if the statement has free continue statements.
|
inline |
| cblock_t* cinsn_t::cblock |
details of block-statement
| cexpr_t* cinsn_t::cexpr |
details of expression-statement
| cif_t* cinsn_t::cif |
details of if-statement
| cfor_t* cinsn_t::cfor |
details of for-statement
| cwhile_t* cinsn_t::cwhile |
details of while-statement
| cdo_t* cinsn_t::cdo |
details of do-statement
| cswitch_t* cinsn_t::cswitch |
details of switch-statement
| creturn_t* cinsn_t::creturn |
details of return-statement
| cgoto_t* cinsn_t::cgoto |
details of goto-statement
| casm_t* cinsn_t::casm |
details of asm-statement
| ctry_t* cinsn_t::ctry |
details of try-statement
| cthrow_t* cinsn_t::cthrow |
details of throw-statement
| union { ... } cinsn_t |