* gimple-low.c (struct lower_data): New field encl_switch_body.
(lower_case_label_expr): New.
(lower_stmt_body, lower_stmt, lower_switch_expr): Handle switch_expr
lowering.
* tree-cfg.c (CASE_END, CASE_NEXT_RAW): Removed.
(CASE_GOTO, CASE_NEXT, CASE_DESTINATION, CASE_CASE, CASE_EDGE): Work
over tree_stmt_iterators.
(CASE_START): New.
(make_switch_expr_edges, tree_redirect_edge_and_branch,
find_taken_edge_switch_expr, tree_cleanup_block_edges,
remove_superfluous_labels): Use tree_stmt_iterator for switch cases.
(build_new_label): Moved ...
* gimplify.c (build_new_label): ...here.
(build_and_jump): Use it.
* tree-flatten.c (tree_flatten_statement): Assume SWITCH_EXPRs are
lowered.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/tree-ssa-cfg-branch@72127 138bc75d-0d04-0410-961f-82ee72b054a4