diff options
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index ceb2ff4..cd6c428 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -1340,9 +1340,9 @@ lower_try_finally_switch (struct leh_state *state, struct leh_tf_state *tf) fallthru_index)); gimple_seq_add_stmt (&tf->top_p_seq, x); - last_case = build3 (CASE_LABEL_EXPR, void_type_node, - build_int_cst (integer_type_node, fallthru_index), - NULL, create_artificial_label (tf_loc)); + tmp = build_int_cst (integer_type_node, fallthru_index); + last_case = build_case_label (tmp, NULL, + create_artificial_label (tf_loc)); VEC_quick_push (tree, case_label_vec, last_case); last_case_index++; @@ -1365,9 +1365,9 @@ lower_try_finally_switch (struct leh_state *state, struct leh_tf_state *tf) x = gimple_build_goto (finally_label); gimple_seq_add_stmt (&eh_seq, x); - last_case = build3 (CASE_LABEL_EXPR, void_type_node, - build_int_cst (integer_type_node, eh_index), - NULL, create_artificial_label (tf_loc)); + tmp = build_int_cst (integer_type_node, eh_index); + last_case = build_case_label (tmp, NULL, + create_artificial_label (tf_loc)); VEC_quick_push (tree, case_label_vec, last_case); last_case_index++; @@ -1419,9 +1419,9 @@ lower_try_finally_switch (struct leh_state *state, struct leh_tf_state *tf) { tree case_lab; void **slot; - case_lab = build3 (CASE_LABEL_EXPR, void_type_node, - build_int_cst (integer_type_node, switch_id), - NULL, create_artificial_label (tf_loc)); + tmp = build_int_cst (integer_type_node, switch_id); + case_lab = build_case_label (tmp, NULL, + create_artificial_label (tf_loc)); /* We store the cont_stmt in the pointer map, so that we can recover it in the loop below. */ if (!cont_map) @@ -3132,8 +3132,8 @@ lower_eh_dispatch (basic_block src, gimple stmt) blocks at the end of this pass. */ if (! pointer_set_contains (seen_values, TREE_VALUE (flt_node))) { - tree t = build3 (CASE_LABEL_EXPR, void_type_node, - TREE_VALUE (flt_node), NULL, lab); + tree t = build_case_label (TREE_VALUE (flt_node), + NULL, lab); VEC_safe_push (tree, heap, labels, t); pointer_set_insert (seen_values, TREE_VALUE (flt_node)); have_label = true; @@ -3181,8 +3181,7 @@ lower_eh_dispatch (basic_block src, gimple stmt) gsi_insert_before (&gsi, x, GSI_SAME_STMT); /* Turn the default label into a default case. */ - default_label = build3 (CASE_LABEL_EXPR, void_type_node, - NULL, NULL, default_label); + default_label = build_case_label (NULL, NULL, default_label); sort_case_labels (labels); x = gimple_build_switch_vec (filter, default_label, labels); |