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.

Reply via email to