For the following program, compiled on Windows with the 20060504 Mingw gfortran with the -fbounds-check option,
program xfoo integer, parameter :: n = 3 integer :: i,istat(n) character (len=6) :: words(n) character (len=1000) :: text text = "abcdef ghijkl mnopqr" read (text,*) words print*,(words(i)," ",i=1,n) istat = foo(words) print*,istat print*,(words(i)," ",i=1,n) ! contains function foo(str) result(istat) character (len=*), intent(in) :: str(:) integer :: istat(size(str)) istat = 0 end function foo end program xfoo the output is abcdef ghijkl mnopqr 0 0 4268384 abcdef ghijkl mn The array "words" changes, but it should not. This problem occurs only when the -fbounds-check option is used. Vivek Rao -- Summary: possible bug for array of strings passed to function Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: vivekrao4 at yahoo dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27760