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

            Bug ID: 92000
           Summary: Fortran array passing optimization
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tkoenig at gcc dot gnu.org
  Target Milestone: ---

The following code

      program main
      integer :: a(2)
      a(1) = 1
      a(2) = 42
      call foo(a(1:1),1)
      if (a(2) .ne. 42) stop "bletchful"
      end

need not execute the check if a(2) is 42, and the call to
_gfortran_stop_string can be optimized away.

The same goes for

      program main
      integer :: a(2)
      a(1) = 1
      a(2) = 42
      call foo(a(1),1)
      if (a(2) .ne. 42) stop "bletchful"
      end

There is a lot of broken code which assumes that the check is necessary,
so we should probably do this optimization contingent only if
-fallow-argument-mismatch is not in effect.

Reply via email to