Public Member Functions | Public Attributes | List of all members
ccase_t Struct Reference

Switch case. Usually cinsn_t is a block. More...

Inheritance diagram for ccase_t:
cinsn_t citem_t

Public Member Functions

 DECLARE_COMPARISONS (ccase_t)
 
void print (const cinsn_t *parent, int indent, vc_printer_t &vp) const
 
void set_insn (cinsn_t *i)
 
size_t size (void) const
 
const uint64 & value (int i) const
 
- Public Member Functions inherited from cinsn_t
 cinsn_t (const cinsn_t &r)
 
void swap (cinsn_t &r)
 
cinsn_toperator= (const cinsn_t &r)
 
cinsn_tassign (const cinsn_t &r)
 
 DECLARE_COMPARISONS (cinsn_t)
 
void replace_by (cinsn_t *r)
 Replace the statement. More...
 
void cleanup (void)
 Cleanup the statement. More...
 
void zero (void)
 Overwrite with zeroes without cleaning memory or deleting children.
 
cinsn_tnew_insn (ea_t insn_ea)
 Create a new statement. More...
 
cif_tcreate_if (cexpr_t *cnd)
 Create a new if-statement. More...
 
void print (int indent, vc_printer_t &vp, use_curly_t use_curly=CALC_CURLY_BRACES) const
 Print the statement into many lines. More...
 
size_t print1 (char *buf, size_t bufsize, const cfunc_t *func) const
 Print the statement into one line. More...
 
bool is_ordinary_flow (void) const
 Check if the statement passes execution to the next statement. More...
 
bool contains_insn (ctype_t type, int times=1) const
 Check if the statement contains a statement of the specified type. More...
 
bool collect_free_breaks (cinsnptrvec_t *breaks)
 Collect free break statements. More...
 
bool collect_free_continues (cinsnptrvec_t *continues)
 Collect free continue statements. More...
 
bool contains_free_break (void) const
 Check if the statement has free break statements.
 
bool contains_free_continue (void) const
 Check if the statement has free continue statements.
 
- Public Member Functions inherited from citem_t
 citem_t (ctype_t o)
 
void swap (citem_t &r)
 Swap two citem_t.
 
bool is_expr (void) const
 Is an expression?
 
bool contains_label (void) const
 Does the item contain a label?
 
const citem_tfind_parent_of (const citem_t *sitem) const
 Find parent of the specified item. More...
 
citem_tfind_parent_of (const citem_t *item)
 
size_t print1 (char *buf, size_t bufsize, const cfunc_t *func) const
 Print item into one line. More...
 

Public Attributes

qvector< uint64 > values
 List of case values. More...
 
- Public Attributes inherited from cinsn_t
union {
   cblock_t *   cblock
 details of block-statement
 
   cexpr_t *   cexpr
 details of expression-statement
 
   cif_t *   cif
 details of if-statement
 
   cfor_t *   cfor
 details of for-statement
 
   cwhile_t *   cwhile
 details of while-statement
 
   cdo_t *   cdo
 details of do-statement
 
   cswitch_t *   cswitch
 details of switch-statement
 
   creturn_t *   creturn
 details of return-statement
 
   cgoto_t *   cgoto
 details of goto-statement
 
   casm_t *   casm
 details of asm-statement
 
}; 
 
- Public Attributes inherited from citem_t
ea_t ea
 address that corresponds to the item
 
ctype_t op
 element type
 
int label_num
 label number. More...
 
int index
 item index. meaningful only after print_func()
 

Detailed Description

Switch case. Usually cinsn_t is a block.

Definition at line 2124 of file hexrays.hpp.

Member Data Documentation

qvector<uint64> ccase_t::values

List of case values.

if empty, then 'default' case

Definition at line 2126 of file hexrays.hpp.