http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60795

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu.org

--- Comment #2 from kargl at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #1)
>
> What is surprising is that r173750, r174030, and r174415 are related to
> backtrace handling, so they probably only expose a latent problem(?).
>

I think it is a lot worse than it appears.

call s1
call s2
call s3
end

subroutine s1
  character(:), dimension(:), allocatable :: s
  allocate(character(10) :: s(2))
  s(1) = 'r'
  s(2) = 's'
  print *, 's1: ', size(s), len(s)
end subroutine s1
!
! A variation on a theme?
!
subroutine s2
!  This causes an ICE in gfortran
!  character(:), dimension(:), allocatable :: s
!  allocate(s(2), source='abc')
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's2:', size(s), len(s)
end subroutine s2
!
! A variation on a theme?
!
subroutine s3
!  This causes an ICE in gfortran
!  character(:), dimension(:), allocatable :: s
!  allocate(s(2), source=['abc','def'])
!  allocate(s, source=['abc','def'])
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's3:', size(s), len(s)
end subroutine s3

subroutine y3
!  This causes gfortran to issue an error.  Incorrect!
!  character(:), dimension(:), allocatable :: s
!  allocate(s, source=['abc','def'])
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's3:', size(s), len(s)
end subroutine y3

subroutine t3
!  This causes gfortran to issue an error. Incorrect!
!  real, dimension(:), allocatable :: s
!  allocate(s, source=[1., 2.])
end subroutine t3

subroutine s4
!  This causes an ICE in gfortran
!  character(3), dimension(:), allocatable :: s
!  allocate(s(2), source=['abc','def'])
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's3:', size(s), len(s)
end subroutine s4

Reply via email to