http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49565
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-06-28 16:55:16 UTC --- (In reply to comment #2) > /* 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 > && !TYPE_STRING_FLAG (TREE_TYPE (type))) > add_AT_unsigned (array_die, DW_AT_ordering, DW_ORD_col_major); It's too warm to think poperly: TREE_CODE (type) is ARRAY_TYPE but TREE_CODE(TREE_TYPE(type)) is INTEGER_TYPE - not an ARRAY_TYPE; hence the code is never executed. Nevertheless, the issue is presumably related to type having TYPE_STRING_FLAG set, but TREE_TYPE(type) having it not.