| IDA SDK

Public Attributes | Public Member Functions | Public Types | List of all members
switch_info_t Struct Reference

## Detailed Description

Information about a switch statement.

## Public Attributes
uint32 | flags
| Switch info flags
ushort | ncases = 0
| number of cases (excluding default)
ea_t | jumps = BADADDR
| jump table start address
union {
ea_t values
| values table address (if SWI_SPARSE is set)
uval_t lowcase
| the lowest value in cases
}; |
ea_t | defjump = BADADDR
| default jump address (BADADDR if no default case)
ea_t | startea = BADADDR
| start of the switch idiom
int | jcases = 0
| number of entries in the jump table (SWI_INDIRECT)
sval_t | ind_lowcase = 0
ea_t | elbase = 0
| element base
int | regnum = -1
| the switch expression as a value of the REGNUM register before the instruction at EXPR_EA. More...
op_dtype_t | regdtype = 0
| size of the switch expression register as dtype
uval_t | custom = 0
| information for custom tables (filled and used by modules)
int | version = SWITCH_INFO_VERSION
ea_t | expr_ea = BADADDR
| the address before that the switch expression is in REGNUM. More...
eavec_t | marks
| the insns marked as IM_SWITCH. They are used to delete the switch.

## Public Member Functions
int | get_shift (void) const
| See SWI_SHIFT_MASK. More...
void | set_shift (int shift)
| See SWI_SHIFT_MASK.
int | get_jtable_element_size (void) const
void | set_jtable_element_size (int size)
int | get_vtable_element_size (void) const
void | set_vtable_element_size (int size)
bool | has_default (void) const
bool | has_elbase (void) const
bool | is_sparse (void) const
bool | is_custom (void) const
bool | is_indirect (void) const
bool | is_subtract (void) const
bool | is_nolowcase (void) const
bool | use_std_table (void) const
bool | is_user_defined () const
sval_t | get_lowcase (void) const
int | get_jtable_size (void) const
void | set_jtable_size (int size)
void | set_elbase (ea_t base)
void | set_expr (int r, op_dtype_t dt)
bool | get_jrange_vrange (range_t *jrange=nullptr, range_t *vrange=nullptr) const
| get separate parts of the switch
int | get_version () const
void | clear ()

## Public Types
enum | { SWITCH_INFO_VERSION = 2 }

## Member Function Documentation

## ◆ get_shift()

int switch_info_t::get_shift | ( | void |  | ) | const
| inline

See SWI_SHIFT_MASK.

possible answers: 0..3.

## Member Data Documentation

## ◆ regnum

int switch_info_t::regnum = -1

the switch expression as a value of the REGNUM register before the instruction at EXPR_EA.

-1 means 'unknown'

## ◆ expr_ea

ea_t switch_info_t::expr_ea = BADADDR

the address before that the switch expression is in REGNUM.

If BADADDR, then the first insn marked as IM_SWITCH after STARTEA is used.

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

- nalt.hpp