This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/81581] New: runtime checks for DIM argument of intrinsic SUM missing


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81581

            Bug ID: 81581
           Summary: runtime checks for DIM argument of intrinsic SUM
                    missing
           Product: gcc
           Version: 7.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: janus at gcc dot gnu.org
  Target Milestone: ---

Please consider this test case:


program summation

integer, dimension(1:10,1:10) :: arr
integer :: i

do i=1,10
   arr(i,:) = i
end do

! print *, sum(arr, 5)     ! compile-time error: "not a valid dimension index"

call print_sum(1)
call print_sum(2)
call print_sum(5)

contains

   subroutine print_sum(d)
      integer, intent(in) :: d
      print *, sum(arr, d)
   end subroutine

end


The commented line correctly generates a compile-time error. However, when the
DIM argument to SUM is not a compile-time constant, wrong values are accepted
and the program runs without any error or warning, producing the output:

          55          55          55          55          55          55       
  55          55          55          55
          10          20          30          40          50          60       
  70          80          90         100
           0           0           0           0           0           0       
   0           0           0           0

I guess one should implement a runtime check that is enabled by -fcheck=all.
(One could possibly include it into -fcheck=bounds?)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]