https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70244
G. Steinmetz <gs...@t-online.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gs...@t-online.de --- Comment #5 from G. Steinmetz <gs...@t-online.de> --- Some presumably related examples, where z1.f90 gives an ICE, while minimal less complex examples z2.f90 and z3.f90 compile : $ cat z1.f90 program p type t procedure(g), pointer, nopass :: f end type type(t) :: a(1) a(1)%f => g contains function g() result(z) real :: z(2,2) end end $ cat z2.f90 program p type t procedure(g), pointer, nopass :: f end type type(t) :: a a%f => g contains function g() result(z) real :: z(2,2) end end $ cat z3.f90 program p type t procedure(g), pointer, nopass :: f end type type(t) :: a(1) a(1)%f => g contains function g() result(z) real :: z(2) end end $ gfortran-11-20210418 -c z1.f90 f951: internal compiler error: spec_dimen_size(): Bad dimension 0x686b09 gfc_report_diagnostic ../../gcc/fortran/error.c:782 0x68822a gfc_internal_error(char const*, ...) ../../gcc/fortran/error.c:1402 0x65705e spec_dimen_size(gfc_array_spec*, int, __mpz_struct (*) [1]) ../../gcc/fortran/array.c:2300 0x6f299f expression_shape ../../gcc/fortran/resolve.c:5439 0x6f299f gfc_expression_rank(gfc_expr*) ../../gcc/fortran/resolve.c:5513 0x6f4a6e resolve_variable ../../gcc/fortran/resolve.c:5943 0x6f4a6e gfc_resolve_expr(gfc_expr*) ../../gcc/fortran/resolve.c:7107 0x6fc384 gfc_resolve_expr(gfc_expr*) ../../gcc/fortran/resolve.c:7072 0x6fc384 gfc_resolve_code(gfc_code*, gfc_namespace*) ../../gcc/fortran/resolve.c:11820 0x6fd997 resolve_codes ../../gcc/fortran/resolve.c:17396 0x6fda5e gfc_resolve(gfc_namespace*) ../../gcc/fortran/resolve.c:17431 0x6e5fb4 resolve_all_program_units ../../gcc/fortran/parse.c:6290 0x6e5fb4 gfc_parse_file() ../../gcc/fortran/parse.c:6542 0x7329cf gfc_be_parse_file ../../gcc/fortran/f95-lang.c:212