[Bug fortran/60560] New: Problem allocating character array with assumed length
mrestelli at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Mar 18 08:48:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60560
Bug ID: 60560
Summary: Problem allocating character array with assumed length
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: mrestelli at gmail dot com
The following code does not compile with gfortran (either 4.7.3 or
trunk). My understanding is that the code is legal but gfortran is
confused by the fact that:
s_tmp takes its length from s
s is allocated to size(s_tmp)
The point is, the lengths of both s and s_tmp are fixed on entry in
the subroutine, and the allocation statement uses size(s_tmp) which
has nothing to do with s. (For what is worth, the code compiles with
ifort).
module mstr
implicit none
contains
subroutine sub(s)
character(len=*), allocatable, intent(out) :: s(:)
character(len=len(s)), allocatable :: s_tmp(:) ! does not work
!character(len=10), allocatable :: s_tmp(:) ! this works
allocate(s_tmp(5))
allocate(s(size(s_tmp)))
end subroutine sub
end module mstr
gfortran -c mstr.f90
mstr.f90:11.12:
allocate(s(size(s_tmp)))
1
Error: 's' must not appear in the array specification at (1) in the same
ALLOCATE statement where it is itself allocated
More information about the Gcc-bugs
mailing list