GIMPLE_SWITCH (GNU Compiler Collection (GCC) Internals)

#### 12.8.28 `GIMPLE_SWITCH` ¶

GIMPLE function: `gswitch` *gimple_build_switch `(tree index, tree default_label, `vec`<tree> *args)` ¶

  Build a `GIMPLE_SWITCH` statement. `INDEX` is the index variable to switch on, and `DEFAULT_LABEL` represents the default label. `ARGS` is a vector of `CASE_LABEL_EXPR` trees that contain the non-default case labels. Each label is a tree of code `CASE_LABEL_EXPR`.

GIMPLE function: `unsigned` gimple_switch_num_labels `( const gswitch *g)` ¶

  Return the number of labels associated with the switch statement `G`.

GIMPLE function: `void` gimple_switch_set_num_labels `(gswitch *g, unsigned nlabels)` ¶

  Set `NLABELS` to be the number of labels for the switch statement `G`.

GIMPLE function: `tree` gimple_switch_index `(const gswitch *g)` ¶

  Return the index variable used by the switch statement `G`.

GIMPLE function: `void` gimple_switch_set_index `(gswitch *g, tree index)` ¶

  Set `INDEX` to be the index variable for switch statement `G`.

GIMPLE function: `tree` gimple_switch_label `(const gswitch *g, unsigned index)` ¶

  Return the label numbered `INDEX`. The default label is 0, followed by any labels in a switch statement.

GIMPLE function: `void` gimple_switch_set_label `(gswitch *g, unsigned index, tree label)` ¶

  Set the label number `INDEX` to `LABEL`. 0 is always the default label.

GIMPLE function: `tree` gimple_switch_default_label `( const gswitch *g)` ¶

  Return the default label for a switch statement.

GIMPLE function: `void` gimple_switch_set_default_label `(gswitch *g, tree label)` ¶

  Set the default label for a switch statement.