https://gcc.gnu.org/g:90c763445c857c26a12f21f440cf6ad02e8774e5
commit 90c763445c857c26a12f21f440cf6ad02e8774e5 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Sun Aug 24 12:16:30 2025 +0200 Élimination NON_LVALUE_EXPR de TYPE_MAX_VALUE Diff: --- gcc/fortran/trans-decl.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index 589c6a4715dd..64466a553d86 100644 --- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -1269,11 +1269,15 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym) tree lower = TYPE_MIN_VALUE (TYPE_DOMAIN (type)); if (lower == NULL_TREE) lower = gfc_index_zero_node; + if (TREE_CODE (lower) == NON_LVALUE_EXPR) + lower = TREE_OPERAND (lower, 0); size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, GFC_TYPE_ARRAY_SIZE (type), gfc_index_one_node); size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, size, lower); + if (TREE_CODE (size) == NON_LVALUE_EXPR) + size = TREE_OPERAND (size, 0); range = build_range_type (gfc_array_index_type, lower, size); TYPE_DOMAIN (type) = range; if (GFC_TYPE_PACKED_ARRAY (type))