https://gcc.gnu.org/g:cfaad601bf8224d79c7493d966647602247462c3
commit cfaad601bf8224d79c7493d966647602247462c3 Author: Mikael Morin <[email protected]> Date: Fri Jul 3 17:03:17 2026 +0200 Sauvegarde modifs Diff: --- gcc/fortran/trans-array.cc | 2 +- gcc/fortran/trans-intrinsic.cc | 8 ++++---- gcc/fortran/trans-openmp.cc | 3 +-- gcc/fortran/trans-stmt.cc | 13 +++++++------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 3447ced7f2d8..ccdf588b3723 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -9120,7 +9120,7 @@ gfc_conv_array_parameter (gfc_se *se, gfc_expr *expr, bool g77, gfc_add_modify (&block, gfc_conv_descriptor_dtype (arr), gfc_conv_descriptor_dtype (se->expr)); gfc_add_modify (&block, gfc_conv_descriptor_rank (arr), - build_int_cst (signed_char_type_node, 1)); + build_int_cst (gfc_array_dim_rank_type, 1)); gfc_conv_descriptor_span_set (&block, arr, gfc_conv_descriptor_span_get (arr)); gfc_conv_descriptor_offset_set (&block, arr, gfc_index_zero_node); diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc index 51c6d5d94c00..58a4e4596b3c 100644 --- a/gcc/fortran/trans-intrinsic.cc +++ b/gcc/fortran/trans-intrinsic.cc @@ -8500,9 +8500,9 @@ gfc_conv_intrinsic_sizeof (gfc_se *se, gfc_expr *expr) tree cond, loop_var, exit_label; stmtblock_t body; - tmp = fold_convert (gfc_array_index_type, + tmp = fold_convert (gfc_array_dim_rank_type, gfc_conv_descriptor_rank (argse.expr)); - loop_var = gfc_create_var (gfc_array_index_type, "i"); + loop_var = gfc_create_var (gfc_array_dim_rank_type, "i"); gfc_add_modify (&argse.pre, loop_var, gfc_index_zero_node); exit_label = gfc_build_label_decl (NULL_TREE); @@ -8531,8 +8531,8 @@ gfc_conv_intrinsic_sizeof (gfc_se *se, gfc_expr *expr) gfc_add_modify (&body, source_bytes, tmp); tmp = fold_build2_loc (input_location, PLUS_EXPR, - gfc_array_index_type, loop_var, - gfc_index_one_node); + gfc_array_dim_rank_type, loop_var, + gfc_rank_cst[1]); gfc_add_modify_loc (input_location, &body, loop_var, tmp); tmp = gfc_finish_block (&body); diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index 339f0c99cb70..0d726b488133 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -2129,8 +2129,7 @@ gfc_omp_get_array_size (location_t loc, tree desc, gimple_seq *seq) tree end; if (GFC_TYPE_ARRAY_AKIND (TREE_TYPE (desc)) == GFC_ARRAY_ASSUMED_SHAPE_CONT || GFC_TYPE_ARRAY_AKIND (TREE_TYPE (desc)) == GFC_ARRAY_ASSUMED_SHAPE) - end = fold_convert (gfc_array_dim_rank_type, - gfc_conv_descriptor_rank (desc)); + end = gfc_conv_descriptor_rank (desc); else end = build_int_cst (gfc_array_dim_rank_type, GFC_TYPE_ARRAY_RANK (TREE_TYPE (desc))); diff --git a/gcc/fortran/trans-stmt.cc b/gcc/fortran/trans-stmt.cc index 90ac572dd725..785f0b48191b 100644 --- a/gcc/fortran/trans-stmt.cc +++ b/gcc/fortran/trans-stmt.cc @@ -3974,7 +3974,8 @@ gfc_trans_select_rank_cases (gfc_code * code) /* Calculate the switch expression. */ gfc_init_se (&se, NULL); gfc_conv_expr_descriptor (&se, code->expr1); - rank = gfc_conv_descriptor_rank (se.expr); + rank = fold_convert_loc (input_location, signed_char_type_node, + gfc_conv_descriptor_rank (se.expr)); rank = gfc_evaluate_now (rank, &block); symbol_attribute attr = gfc_expr_attr (code->expr1); if (!attr.pointer && !attr.allocatable) @@ -3983,16 +3984,16 @@ gfc_trans_select_rank_cases (gfc_code * code) rank = (rank == 0 || ubound[rank-1] != -1) ? rank : -1. */ cond = fold_build2_loc (input_location, EQ_EXPR, logical_type_node, rank, build_int_cst (TREE_TYPE (rank), 0)); - tmp = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, - fold_convert (gfc_array_index_type, rank), - gfc_index_one_node); + tmp = fold_build2_loc (input_location, MINUS_EXPR, signed_char_type_node, + rank, build_one_cst(signed_char_type_node)); tmp = gfc_conv_descriptor_ubound_get (se.expr, tmp); tmp = fold_build2_loc (input_location, NE_EXPR, logical_type_node, tmp, build_int_cst (TREE_TYPE (tmp), -1)); cond = fold_build2_loc (input_location, TRUTH_ORIF_EXPR, logical_type_node, cond, tmp); - tmp = fold_build3_loc (input_location, COND_EXPR, TREE_TYPE (rank), - cond, rank, build_int_cst (TREE_TYPE (rank), -1)); + tmp = fold_build3_loc (input_location, COND_EXPR, signed_char_type_node, + cond, rank, + build_minus_one_cst (signed_char_type_node)); rank = gfc_evaluate_now (tmp, &block); } TREE_USED (code->exit_label) = 0;
