https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95647
--- Comment #4 from Steve Kargl <sgk at troutmask dot apl.washington.edu> --- On Sat, Jun 13, 2020 at 08:11:22AM +0000, tkoenig at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95647 > > --- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- > If we treat .eq. and == differently, that is an indication > of a bug in the compiler itself. If a user provides an overloading of .eq. or == with an INTERFACE OPERATOR() statement, then things appear to work. The IEEE modules are not provided by a user and for parts of the modules gfortran builts the needed the pieces at compile time. gfortran also marks symbols as coming from an IEEE module for special handling. For whatever reason, with the IEEE_ARITHMETICi module if the interface is given in terms of ==, it is not overloaded to .eq.; while for the converse .eq. is overloaded to ==. The purposed patch fixes this issue.