diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2011-05-06 03:47:57 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2011-05-06 03:47:57 +0000 |
commit | 3d528853ba1106b3cbd6eca4316ab2825416b9a6 (patch) | |
tree | 039393d181bb08f19b86318385c11bae2f698e2d /gcc/fortran | |
parent | d7d058c58a02241c63e6c3cc0099bc5d7f68a153 (diff) | |
download | gcc-3d528853ba1106b3cbd6eca4316ab2825416b9a6.zip gcc-3d528853ba1106b3cbd6eca4316ab2825416b9a6.tar.gz gcc-3d528853ba1106b3cbd6eca4316ab2825416b9a6.tar.bz2 |
generalize build_case_label to the rest of the compiler
generalize build_case_label to the rest of the compiler
gcc/ada/
* gcc-interface/trans.c (Case_Statement_to_gnu): Call
build_case_label.
gcc/
* except.c (sjlj_emit_dispatch_table): Call build_case_label.
* gimplify.c (gimplify_switch_expr): Likewise.
* omp-low.c (expand_omp_sections): Likewise.
* tree-eh.c (lower_try_finally_switch): Likewise.
(lower_eh_dispatch): Likewise.
* tree.h (build_case_label): Declare.
* tree.c (build_case_label): Define.
gcc/c-family/
* c-common.c (c_add_case_label): Omit the loc argument to
build_case_label.
* c-common.h (build_case_label): Remove.
* c-semantics.c (build_case_label): Remove.
gcc/cp/
* decl.c (finish_case_label): Omit the loc argument to
build_case_label.
gcc/fortran/
* trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
* trans-io.c (add_case): Likewise.
* trans-stmt.c (gfc_trans_integer_select): Likewise.
(gfc_trans_character_select): Likewise.
gcc/go/
* go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.
gcc/java/
* expr.c (expand_java_switch): Call build_case_label.
(expand_java_add_case): Likewise.
From-SVN: r173467
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans-io.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans-stmt.c | 16 |
4 files changed, 15 insertions, 12 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 00774f4..da6d2ab 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2011-05-05 Nathan Froyd <froydnj@codesourcery.com> + + * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label. + * trans-io.c (add_case): Likewise. + * trans-stmt.c (gfc_trans_integer_select): Likewise. + (gfc_trans_character_select): Likewise. + 2011-05-05 Eric Botcazou <ebotcazou@adacore.com> * trans-decl.c (trans_function_start): Do not set diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 2452927..63f03de 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -4347,7 +4347,7 @@ gfc_trans_entry_master_switch (gfc_entry_list * el) /* Add the case label. */ label = gfc_build_label_decl (NULL_TREE); val = build_int_cst (gfc_array_index_type, el->id); - tmp = build3_v (CASE_LABEL_EXPR, val, NULL_TREE, label); + tmp = build_case_label (val, NULL_TREE, label); gfc_add_expr_to_block (&block, tmp); /* And jump to the actual entry point. */ diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index 07df5d8..4e019a3 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -832,7 +832,7 @@ add_case (int label_value, gfc_st_label * label, stmtblock_t * body) tmp = gfc_build_label_decl (NULL_TREE); /* And the case itself. */ - tmp = build3_v (CASE_LABEL_EXPR, value, NULL_TREE, tmp); + tmp = build_case_label (value, NULL_TREE, tmp); gfc_add_expr_to_block (body, tmp); /* Jump to the label. */ diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 9147d88..d2a0a5f 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -1770,8 +1770,7 @@ gfc_trans_integer_select (gfc_code * code) /* Add this case label. Add parameter 'label', make it match GCC backend. */ - tmp = fold_build3_loc (input_location, CASE_LABEL_EXPR, - void_type_node, low, high, label); + tmp = build_case_label (low, high, label); gfc_add_expr_to_block (&body, tmp); } @@ -2048,8 +2047,7 @@ gfc_trans_character_select (gfc_code *code) /* Add this case label. Add parameter 'label', make it match GCC backend. */ - tmp = fold_build3_loc (input_location, CASE_LABEL_EXPR, - void_type_node, low, high, label); + tmp = build_case_label (low, high, label); gfc_add_expr_to_block (&body, tmp); } @@ -2128,12 +2126,10 @@ gfc_trans_character_select (gfc_code *code) for (d = c->ext.block.case_list; d; d = d->next) { label = gfc_build_label_decl (NULL_TREE); - tmp = fold_build3_loc (input_location, CASE_LABEL_EXPR, - void_type_node, - (d->low == NULL && d->high == NULL) - ? NULL : build_int_cst (integer_type_node, - d->n), - NULL, label); + tmp = build_case_label ((d->low == NULL && d->high == NULL) + ? NULL + : build_int_cst (integer_type_node, d->n), + NULL, label); gfc_add_expr_to_block (&body, tmp); } |