https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83522
--- Comment #2 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- The expression strings(:)(:) is invalid fortran. F2008 R610. R610 parent-string is scalar-variable-name or array-element or scalar-structure-component or scalar-constant so strings(:) is not an element or scalar (Thanks to Steve for helping me find this. Still, we need to deal with the ICE. program testit character(len=:),allocatable :: strings(:) integer :: i strings=[character(len=2) :: 'AA','BB'] !write(*,*)strings(:)(:) ! gives an ICE on invalid !strings(:)(:) ! gives an error message on invalid !strings(:)(:) = 'x'! gives an ICE on invalid do i=1, size(strings) write(*,*)strings(i)(:) ! This is valid and works end do end program testit