Hi, this is version of patch which bootstrap®ress all languages at x86_64. OK?
Honza * trans-types.c (gfc_array_range_type): Remove. (gfc_init_types): Do not build gfc_array_range_type. (gfc_get_array_type_bounds): Do not put unrealistic array bounds. * trans-types.h (gfc_array_range_type): Remove. * tree-pretty-print.c (dump_array_domain): Dump empty domain as [0:]. Index: fortran/trans-types.c =================================================================== --- fortran/trans-types.c (revision 236762) +++ fortran/trans-types.c (working copy) @@ -52,7 +52,6 @@ along with GCC; see the file COPYING3. CInteropKind_t c_interop_kinds_table[ISOCBINDING_NUMBER]; tree gfc_array_index_type; -tree gfc_array_range_type; tree gfc_character1_type_node; tree pvoid_type_node; tree prvoid_type_node; @@ -945,12 +944,6 @@ gfc_init_types (void) = build_pointer_type (build_function_type_list (void_type_node, NULL_TREE)); gfc_array_index_type = gfc_get_int_type (gfc_index_integer_kind); - /* We cannot use gfc_index_zero_node in definition of gfc_array_range_type, - since this function is called before gfc_init_constants. */ - gfc_array_range_type - = build_range_type (gfc_array_index_type, - build_int_cst (gfc_array_index_type, 0), - NULL_TREE); /* The maximum array element size that can be handled is determined by the number of bits available to store this field in the array @@ -1920,12 +1913,12 @@ gfc_get_array_type_bounds (tree etype, i /* We define data as an array with the correct size if possible. Much better than doing pointer arithmetic. */ - if (stride) + if (stride && akind >= GFC_ARRAY_ALLOCATABLE) rtype = build_range_type (gfc_array_index_type, gfc_index_zero_node, int_const_binop (MINUS_EXPR, stride, build_int_cst (TREE_TYPE (stride), 1))); else - rtype = gfc_array_range_type; + rtype = NULL; arraytype = build_array_type (etype, rtype); arraytype = build_pointer_type (arraytype); if (restricted) Index: fortran/trans-types.h =================================================================== --- fortran/trans-types.h (revision 236762) +++ fortran/trans-types.h (working copy) @@ -24,7 +24,6 @@ along with GCC; see the file COPYING3. #define GFC_BACKEND_H extern GTY(()) tree gfc_array_index_type; -extern GTY(()) tree gfc_array_range_type; extern GTY(()) tree gfc_character1_type_node; extern GTY(()) tree ppvoid_type_node; extern GTY(()) tree pvoid_type_node; Index: tree-pretty-print.c =================================================================== --- tree-pretty-print.c (revision 236762) +++ tree-pretty-print.c (working copy) @@ -362,7 +362,7 @@ dump_array_domain (pretty_printer *pp, t } } else - pp_string (pp, "<unknown>"); + pp_string (pp, "0:"); pp_right_bracket (pp); }