https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95647
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org --- Comment #2 from kargl at gcc dot gnu.org --- Thanks for the testcase. gfortran converts the old school .eq. to ==, and then tracks the ==. The module starts with == and so it does not properly overload the .eq. This fixes the issue. Index: libgfortran/ieee/ieee_arithmetic.F90 =================================================================== --- libgfortran/ieee/ieee_arithmetic.F90 (revision 280157) +++ libgfortran/ieee/ieee_arithmetic.F90 (working copy) @@ -77,15 +77,16 @@ module IEEE_ARITHMETIC ! Equality operators on the derived types - interface operator (==) + ! Note, the FE overloads .eq. to == and .ne. to /= + interface operator (.eq.) module procedure IEEE_CLASS_TYPE_EQ, IEEE_ROUND_TYPE_EQ end interface - public :: operator(==) + public :: operator(.eq.) - interface operator (/=) + interface operator (.ne.) module procedure IEEE_CLASS_TYPE_NE, IEEE_ROUND_TYPE_NE end interface - public :: operator (/=) + public :: operator (.ne.) ! IEEE_IS_FINITE