From 1290e54cfe1a6ae750e705d8de958fd965b95126 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Thu, 31 Mar 2011 02:26:18 +0000 Subject: [PATCH] tree.h (CASE_CHAIN): Define. * tree.h (CASE_CHAIN): Define. * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it. (gimple_redirect_edge_and_branch): Likewise. From-SVN: r171769 --- gcc/ChangeLog | 6 ++++++ gcc/tree-cfg.c | 12 ++++++------ gcc/tree.h | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5fceb8bdba..f71f1af465e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-03-30 Nathan Froyd + + * tree.h (CASE_CHAIN): Define. + * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it. + (gimple_redirect_edge_and_branch): Likewise. + 2011-03-30 Vladimir Makarov PR middle-end/48367 diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 01893ba393e..8a47e2ff728 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -838,8 +838,8 @@ edge_to_cases_cleanup (const void *key ATTRIBUTE_UNUSED, void **value, for (t = (tree) *value; t; t = next) { - next = TREE_CHAIN (t); - TREE_CHAIN (t) = NULL; + next = CASE_CHAIN (t); + CASE_CHAIN (t) = NULL; } *value = NULL; @@ -922,7 +922,7 @@ get_cases_for_edge (edge e, gimple t) /* Add it to the chain of CASE_LABEL_EXPRs referencing E, or create a new chain. */ slot = pointer_map_insert (edge_to_cases, this_edge); - TREE_CHAIN (elt) = (tree) *slot; + CASE_CHAIN (elt) = (tree) *slot; *slot = elt; } @@ -4851,7 +4851,7 @@ gimple_redirect_edge_and_branch (edge e, basic_block dest) { last = cases; CASE_LABEL (cases) = label; - cases = TREE_CHAIN (cases); + cases = CASE_CHAIN (cases); } /* If there was already an edge in the CFG, then we need @@ -4860,8 +4860,8 @@ gimple_redirect_edge_and_branch (edge e, basic_block dest) { tree cases2 = get_cases_for_edge (e2, stmt); - TREE_CHAIN (last) = TREE_CHAIN (cases2); - TREE_CHAIN (cases2) = first; + CASE_CHAIN (last) = CASE_CHAIN (cases2); + CASE_CHAIN (cases2) = first; } bitmap_set_bit (touched_switch_bbs, gimple_bb (stmt)->index); } diff --git a/gcc/tree.h b/gcc/tree.h index 9a288cb69ac..ac5e544abe3 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -1636,6 +1636,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)) /* The operands of a TARGET_MEM_REF. Operands 0 and 1 have to match corresponding MEM_REF operands. */ -- 2.30.2