diff options
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
-rw-r--r-- | gcc/fortran/trans-stmt.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 7e08e8d..9147d88 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -119,7 +119,7 @@ gfc_trans_label_assign (gfc_code * code) gfc_expr *format = code->label1->format; label_len = format->value.character.length; - len_tree = build_int_cst (NULL_TREE, label_len); + len_tree = build_int_cst (gfc_charlen_type_node, label_len); label_tree = gfc_build_wide_string_const (format->ts.kind, label_len + 1, format->value.character.string); label_tree = gfc_build_addr_expr (pvoid_type_node, label_tree); @@ -2131,7 +2131,8 @@ gfc_trans_character_select (gfc_code *code) tmp = fold_build3_loc (input_location, CASE_LABEL_EXPR, void_type_node, (d->low == NULL && d->high == NULL) - ? NULL : build_int_cst (NULL_TREE, d->n), + ? NULL : build_int_cst (integer_type_node, + d->n), NULL, label); gfc_add_expr_to_block (&body, tmp); } @@ -2185,7 +2186,7 @@ gfc_trans_character_select (gfc_code *code) } type = build_array_type (select_struct[k], - build_index_type (build_int_cst (NULL_TREE, n-1))); + build_index_type (size_int (n-1))); init = build_constructor (type, inits); TREE_CONSTANT (init) = 1; @@ -2209,7 +2210,8 @@ gfc_trans_character_select (gfc_code *code) gcc_unreachable (); tmp = build_call_expr_loc (input_location, - fndecl, 4, init, build_int_cst (NULL_TREE, n), + fndecl, 4, init, + build_int_cst (gfc_charlen_type_node, n), expr1se.expr, expr1se.string_length); case_num = gfc_create_var (integer_type_node, "case_num"); gfc_add_modify (&block, case_num, tmp); |