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



--- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-04-30 
11:42:49 UTC ---

Reduced test for gfortran.dg/transfer_intrinsic_3.f90



module m

  implicit none

contains

  pure function str_vs(vs) result(s)

    character, dimension(:), intent(in) :: vs

    character(len=size(vs)) :: s

    s = transfer(vs, s)

  end function str_vs

end module m



  use m

  implicit none

  character, dimension(:), pointer :: QName

  character :: tmp(6)

  integer :: n

  allocate(qname(6))

  qname = (/ 'a','b','c','d','e','f' /)



  tmp = str_vs(qname(1:n-1))

  print *, tmp

end



transfer_intrinsic_3_red.f90: In function 'MAIN__':

transfer_intrinsic_3_red.f90:19:0: internal compiler error: in

lhd_incomplete_type_error, at langhooks.c:203

   tmp = str_vs(qname(1:n-1))



Note that the test compiles, but generates a wrong code, without the module:



  implicit none

  character, dimension(:), pointer :: QName

  character :: tmp(6)

  integer :: n

  allocate(qname(6))

  qname = (/ 'a','b','c','d','e','f' /)



  tmp = str_vs(qname(1:n-1))

  print *, tmp

contains

  pure function str_vs(vs) result(s)

    character, dimension(:), intent(in) :: vs

    character(len=size(vs)) :: s

    s = transfer(vs, s)

  end function str_vs

end

Reply via email to