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

            Bug ID: 91963
           Summary: Logical function does not simplify
           Product: gcc
           Version: 10.0
            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 program

module logmod
   use ISO_C_BINDING
   use ISO_FORTRAN_ENV
   implicit none
   private
   integer i
   integer, parameter, public :: minkind = LOGICAL_KINDS(minloc( &
!      [(C_SIZEOF(LOGICAL(.FALSE.,LOGICAL_KINDS(i))), &
      [(SIZE(TRANSFER(LOGICAL(.FALSE.,LOGICAL_KINDS(i)),[0_INT8])), &
      i=1,size(LOGICAL_KINDS))],1))
end module logmod

program start
   use logmod
   implicit none
   write(*,'(*(g0))') minkind
end program start

(due to James van Buskirk) does not compile:

x.f90:9:38:

    9 |       [(SIZE(TRANSFER(LOGICAL(.FALSE.,LOGICAL_KINDS(i)),[0_INT8])), &
      |                                      1
Error: Invalid kind for LOGICAL at (1)
x.f90:14:7:

   14 |    use logmod
      |       1
Fatal Error: Cannot open module file 'logmod.mod' for reading at (1): No such
file or directory

This would actually be useful to select the kind of the smallest
LOGICAL in a portable fashion :-)

Reply via email to