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