2007-12-10 Jakub Jelinek * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For Fortran multi-dimensional arrays use DW_AT_ordering DW_ORD_col_major. --- gcc/dwarf2out.c (revision 130741) +++ gcc/dwarf2out.c (revision 130742) @@ -11636,6 +11636,12 @@ gen_array_type_die (tree type, dw_die_re add_AT_flag (array_die, DW_AT_GNU_vector, 1); } + /* For Fortran multidimensional arrays use DW_ORD_col_major ordering. */ + if (is_fortran () + && TREE_CODE (type) == ARRAY_TYPE + && TREE_CODE (TREE_TYPE (type)) == ARRAY_TYPE) + add_AT_unsigned (array_die, DW_AT_ordering, DW_ORD_col_major); + #if 0 /* We default the array ordering. SDB will probably do the right things even if DW_AT_ordering is not present. It's not even @@ -11787,6 +11793,11 @@ gen_descr_array_type_die (tree type, str add_name_attribute (array_die, type_tag (type)); equate_type_number_to_die (type, array_die); + /* For Fortran multidimensional arrays use DW_ORD_col_major ordering. */ + if (is_fortran () + && info->ndimensions >= 2) + add_AT_unsigned (array_die, DW_AT_ordering, DW_ORD_col_major); + if (info->data_location) add_descr_info_field (array_die, DW_AT_data_location, info->data_location, info->base_decl);