Bug ID: 77649
           Summary: Wrong error reported with bound checking enabled
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot
          Reporter: mrestelli at gmail dot com
  Target Milestone: ---

When compiled with  -fcheck=all  the following code produces an
incorrect error at runtime:

$ gfortran test.f90 -fcheck=all -o test
$ ./test
At line 13 of file test.f90
Fortran runtime error: Index '2' of dimension 1 of array 'text' above upper
bound of 1

$ gfortran --version
GNU Fortran (GCC) 7.0.0 20160919 (experimental)

program p
 implicit none
 character(len=10) :: s

 s = fs((/"abc","d  "/))

 write(*,*) s

 function fs(text) result(s)
  character(len=*), intent(in) :: text(:)
  integer :: i
  character(len=sum((/(len_trim(text(i)) , i=1,size(text))/))) :: s

   write(*,*) "len(s) = ", len(s)
   s = "XYZ"
 end function fs

end program p

Reply via email to