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