[Bug fortran/95647] operator(.eq.) and operator(==) treated differently
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jun 11 22:50:55 GMT 2020
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
More information about the Gcc-bugs
mailing list