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

            Bug ID: 84697
           Summary: minloc/maxloc not simplified with zero size
           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: ---

Minloc and maxloc simplification are not yet done for zero-sized arrays.

Consider

$ cat minloc_zerosize_1.f90
program main
  implicit none
  integer, parameter :: z(0) = 0
  integer, parameter, dimension(1) :: a = minloc(z)
  integer, parameter, dimension(1) :: b = minloc(z,mask=z>0)
  integer, parameter :: c = minloc(z,dim=1)
end program main
$ gfortran minloc_zerosize_1.f90
minloc_zerosize_1.f90:4:41:

   integer, parameter, dimension(1) :: a = minloc(z)
                                         1
Fehler: Transformierende intrinsische Routine »minloc« bei (1) ist in einem
Initialisierungs-Ausdruck nicht erlaubt
minloc_zerosize_1.f90:5:41:

   integer, parameter, dimension(1) :: b = minloc(z,mask=z>0)
                                         1
Fehler: Transformierende intrinsische Routine »minloc« bei (1) ist in einem
Initialisierungs-Ausdruck nicht erlaubt
minloc_zerosize_1.f90:6:27:

   integer, parameter :: c = minloc(z,dim=1)
                           1
Fehler: Transformierende intrinsische Routine »minloc« bei (1) ist in einem
Initialisierungs-Ausdruck nicht erlaubt

Reply via email to