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

--- Comment #4 from Paul Martin <wxcvbn789456123-nw6wda at yahoo dot fr> ---
For information : 

The Silverfrost FTN95 compiler , version 7.20 compiles with no errors the 
program submitted in Comment 0 (though I had to delete two '::' separators).
It gives the same results as the ifort compiler.

Recorded Cygwin session is below :

bash 2 : uname -smo
CYGWIN_NT-6.1-WOW i686 Cygwin
bash 3 : cat oper1.f90

MODULE deriv_m
   IMPLICIT NONE
   TYPE deriv_t
      INTEGER :: i
   END TYPE deriv_t
   INTERFACE OPERATOR (<=)
      MODULE PROCEDURE  deriv_LE_deriv
   END INTERFACE OPERATOR (<=)
CONTAINS
   ELEMENTAL FUNCTION deriv_LE_deriv (a, b) RESULT (c)
      TYPE(deriv_t), INTENT(IN) :: a, b
      LOGICAL                   :: c
      c = a%i .LE. b%i
   END FUNCTION deriv_LE_deriv
END MODULE deriv_m

PROGRAM oper
   USE  deriv_m, ONLY: deriv_t, OPERATOR(.LE.)
   IMPLICIT NONE
   TYPE(deriv_t) :: one = deriv_t(1), two = deriv_t(2)
   WRITE (*,'(A,L1)') '(one  <=  two) = ', one  <=  two
   WRITE (*,'(A,L1)') '(one .LE. two) = ', one .LE. two
END PROGRAM oper

bash 4 : ftn95 oper1.f90 /ISO /CHECK /RESTRICT_SYNTAX /LINK
[FTN95/Win32 Ver. 7.20.0 Copyright (c) Silverfrost Ltd 1993-2015]
    PROCESSING MODULE  [<DERIV_M> FTN95/Win32 v7.20.0]
        NO ERRORS  [<DERIV_LE_DERIV> FTN95/Win32 v7.20.0]
    NO ERRORS  [<DERIV_M> FTN95/Win32 v7.20.0]
    NO ERRORS  [<OPER> FTN95/Win32 v7.20.0]
Creating executable: oper1.EXE
bash 5 : ./oper1.EXE
(one  <=  two) = T
(one .LE. two) = T

Greetings

Paul

Reply via email to