[Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Sep 25 00:27:00 GMT 2010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #1 from kargl at gcc dot gnu.org 2010-09-25 00:16:43 UTC ---
(In reply to comment #0)
> The first paragraph of 7.2 in the standard states that "The operators <, ...
> always have the same interpretations as the operators .LT., ..." Consider the
> following example:
>
> module foo_type
> private
> public :: foo, operator(==)
Interesting. If you replace == with .eq. in the
the above everything works as expected.
Interesting**2. If you leave the public statement
intact, and change the .eq. in the following to ==
> interface operator(.eq.)
> module procedure eq_foo
> end interface
everything works as expected.
Interesting**3. If you simply remove the private
and public statement then everything works as one
would expect.
And finally, an even more interesting bug.
Change the interface statement to
interface operator(.eq.)
module procedure eq_foo
end interface operator(==)
This gives
h.f90:7.28:
end interface operator(==)
1
Error: Expecting 'END INTERFACE OPERATOR (.eq.)' at (1)
h.f90:8.10:
The above violates C1202.
--
Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the Gcc-bugs
mailing list