On Fri, Mar 11, 2011 at 5:23 AM, Nathan Froyd <[email protected]> wrote: > Move CASE_CHAIN into a local operand for CASE_LABEL_EXPR. Nothing to > see here.
I wonder if there isn't a better way to do this ... like always requiring operand 2 of SWITCH_EXPRs. Richard. > -Nathan > > gcc/ > * tree.def (CASE_LABEL_EXPR): Add an operand. > * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN. > > diff --git a/gcc/tree.def b/gcc/tree.def > index eb94ad2..9c6606d 100644 > --- a/gcc/tree.def > +++ b/gcc/tree.def > @@ -863,7 +863,7 @@ DEFTREECODE (SWITCH_EXPR, "switch_expr", tcc_statement, 3) > CASE_HIGH, respectively. If CASE_LOW is NULL_TREE, the label is a > 'default' label. If CASE_HIGH is NULL_TREE, the label is a normal case > label. CASE_LABEL is the corresponding LABEL_DECL. */ > -DEFTREECODE (CASE_LABEL_EXPR, "case_label_expr", tcc_statement, 3) > +DEFTREECODE (CASE_LABEL_EXPR, "case_label_expr", tcc_statement, 4) > > /* Used to represent an inline assembly statement. ASM_STRING returns a > STRING_CST for the instruction (e.g., "mov x, y"). ASM_OUTPUTS, > diff --git a/gcc/tree.h b/gcc/tree.h > index 3e1ff2c..c81186a 100644 > --- a/gcc/tree.h > +++ b/gcc/tree.h > @@ -1689,7 +1689,7 @@ extern void protected_set_expr_location (tree, > location_t); > #define CASE_LOW(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK > (NODE), 0) > #define CASE_HIGH(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK > (NODE), 1) > #define CASE_LABEL(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK > (NODE), 2) > -#define CASE_CHAIN(NODE) TREE_CHAIN (CASE_LABEL_EXPR_CHECK > (NODE)) > +#define CASE_CHAIN(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK > (NODE), 3) > > /* The operands of a TARGET_MEM_REF. Operands 0 and 1 have to match > corresponding MEM_REF operands. */ > -- > 1.7.0.4 > >
