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

Reply via email to