https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96084
Bug ID: 96084 Summary: ICE in free_expr0, at fortran/expr.c:446 Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- This invalid code produces errors up to name length 61, and gives an ICE (or bailing out) for 62/63. To get a traceback it's better to use a test version (configured with --enable-checking=yes). $ cat z1_61.f90 program p type n234567890123456789012345678901234567890123456789012345678901 integer :: i234567890123456789012345678901234567890123456789012345678901 end type dimension a234567890123456789012345678901234567890123456789012345678901(1) class (n234567890123456789012345678901234567890123456789012345678901), allocatable :: & a234567890123456789012345678901234567890123456789012345678901, & b234567890123456789012345678901234567890123456789012345678901 call s(b234567890123456789012345678901234567890123456789012345678901 % & j234567890123456789012345678901234567890123456789012345678901) end $ cat z1_62.f90 program p type n2345678901234567890123456789012345678901234567890123456789012 integer :: i2345678901234567890123456789012345678901234567890123456789012 end type dimension a2345678901234567890123456789012345678901234567890123456789012(1) class (n2345678901234567890123456789012345678901234567890123456789012), allocatable :: & a2345678901234567890123456789012345678901234567890123456789012, & b2345678901234567890123456789012345678901234567890123456789012 call s(b2345678901234567890123456789012345678901234567890123456789012 % & j2345678901234567890123456789012345678901234567890123456789012) end $ cat z1_63.f90 program p type n23456789012345678901234567890123456789012345678901234567890123 integer :: i23456789012345678901234567890123456789012345678901234567890123 end type dimension a23456789012345678901234567890123456789012345678901234567890123(1) class (n23456789012345678901234567890123456789012345678901234567890123), allocatable :: & a23456789012345678901234567890123456789012345678901234567890123, & b23456789012345678901234567890123456789012345678901234567890123 call s(b23456789012345678901234567890123456789012345678901234567890123 % & j23456789012345678901234567890123456789012345678901234567890123) end $ gfortran-11-20200705 -c z1_63.f90 z1_63.f90:10:74: 10 | j23456789012345678901234567890123456789012345678901234567890123) | 1 Error: 'j23456789012345678901234567890123456789012345678901234567890123' at (1) is not a member of the 'n23456789012345678901234567890123456789012345678901234567890123' structure; did you mean 'i23456789012345678901234567890123456789012345678901234567890123'? z1_63.f90:5:76: 5 | dimension a23456789012345678901234567890123456789012345678901234567890123(1) | 1 Error: Allocatable array 'a23456789012345678901234567890123456789012345678901234567890123' at (1) must have a deferred shape or assumed rank f951: internal compiler error: Segmentation fault 0xd6980f crash_signal ../../gcc/toplev.c:328 0x699981 free_expr0 ../../gcc/fortran/expr.c:446 0x699ae8 gfc_free_expr(gfc_expr*) ../../gcc/fortran/expr.c:530 0x666721 gfc_free_array_spec(gfc_array_spec*) ../../gcc/fortran/array.c:351 0x73364f free_components ../../gcc/fortran/symbol.c:2605 0x73364f gfc_free_symbol(gfc_symbol*) ../../gcc/fortran/symbol.c:3077 0x73383e free_sym_tree ../../gcc/fortran/symbol.c:3902 0x73382c free_sym_tree ../../gcc/fortran/symbol.c:3899 0x73382c free_sym_tree ../../gcc/fortran/symbol.c:3899 0x73382c free_sym_tree ../../gcc/fortran/symbol.c:3899 0x73382c free_sym_tree ../../gcc/fortran/symbol.c:3899 0x7334b1 gfc_free_namespace(gfc_namespace*) ../../gcc/fortran/symbol.c:4041 0x733aea gfc_symbol_done_2() ../../gcc/fortran/symbol.c:4101 0x6d1e18 gfc_done_2() ../../gcc/fortran/misc.c:358 0x6f5fa0 translate_all_program_units ../../gcc/fortran/parse.c:6326 0x6f5fa0 gfc_parse_file() ../../gcc/fortran/parse.c:6546 0x74269f gfc_be_parse_file ../../gcc/fortran/f95-lang.c:212