IDA C++ SDK 9.2
Loading...
Searching...
No Matches
ccase_t Struct Reference

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

#include <hexrays.hpp>

Inheritance diagram for ccase_t:
cinsn_t citem_t

Public Member Functions

 DECLARE_COMPARISONS (ccase_t)
void set_insn (cinsn_t *i)
size_t size () const
const uint64value (int i) const
Public Member Functions inherited from cinsn_t
 cinsn_t ()
 cinsn_t (const cinsn_t &r)
void swap (cinsn_t &r)
cinsn_toperator= (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_tfind_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

uint64vec_t values
 List of case values.
Public Attributes inherited from cinsn_t
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.

Detailed Description

Switch case. Usually cinsn_t is a block.

Member Function Documentation

◆ DECLARE_COMPARISONS()

ccase_t::DECLARE_COMPARISONS ( ccase_t )

◆ set_insn()

void ccase_t::set_insn ( cinsn_t * i)

◆ size()

size_t ccase_t::size ( ) const
inline

◆ value()

const uint64 & ccase_t::value ( int i) const
inline

Member Data Documentation

◆ values

uint64vec_t ccase_t::values

List of case values.

if empty, then 'default' case


The documentation for this struct was generated from the following file: