https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70244
janus at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[OOP] ICE spec_dimen_size() |[OOP] ICE in |Bad dimension |spec_dimen_size(): Bad | |dimension --- Comment #2 from janus at gcc dot gnu.org --- Slightly reduced test case: module mymodule implicit none type :: deriv_t contains procedure :: fun end type type :: base_a class(deriv_t), allocatable :: obj end type contains function fun( self ) result( val ) class(deriv_t), intent(in) :: self real, dimension(:,:), allocatable :: val end function end module program bug use mymodule implicit none type(base_a), dimension(1) :: e real, dimension(:,:), allocatable :: m allocate( deriv_t :: e(1)%obj ) m = e(1)%obj%fun() end Backtrace with current trunk: f951: internal compiler error: spec_dimen_size(): Bad dimension 0x7de01e gfc_internal_error(char const*, ...) /home/jweil/gcc/gcc7/trunk/gcc/fortran/error.c:1328 0x7a3453 spec_dimen_size(gfc_array_spec*, int, __mpz_struct (*) [1]) /home/jweil/gcc/gcc7/trunk/gcc/fortran/array.c:2148 0x7a3ea8 gfc_array_dimen_size(gfc_expr*, int, __mpz_struct (*) [1]) /home/jweil/gcc/gcc7/trunk/gcc/fortran/array.c:2423 0x7e4a5d gfc_check_conformance(gfc_expr*, gfc_expr*, char const*, ...) /home/jweil/gcc/gcc7/trunk/gcc/fortran/expr.c:3103 0x7e4fe5 gfc_check_assign(gfc_expr*, gfc_expr*, int, bool) /home/jweil/gcc/gcc7/trunk/gcc/fortran/expr.c:3244 0x87dae6 resolve_ordinary_assign /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:10101 0x87f97b gfc_resolve_code(gfc_code*, gfc_namespace*) /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:10919 0x88ca24 resolve_codes /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:16028 0x88cb71 gfc_resolve(gfc_namespace*) /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:16063 0x85d493 resolve_all_program_units /home/jweil/gcc/gcc7/trunk/gcc/fortran/parse.c:5977 0x85dcaf gfc_parse_file() /home/jweil/gcc/gcc7/trunk/gcc/fortran/parse.c:6224 0x8b6fea gfc_be_parse_file /home/jweil/gcc/gcc7/trunk/gcc/fortran/f95-lang.c:202