public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent
@ 2010-09-24 23:45 neil.n.carlson at gmail dot com
  2010-09-25  0:27 ` [Bug fortran/45786] " kargl at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: neil.n.carlson at gmail dot com @ 2010-09-24 23:45 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

           Summary: Relational operators .eq. and == are not recognized as
                    equivalent
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: neil.n.carlson@gmail.com


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(==)
  type :: foo
    integer :: bar
  end type
  interface operator(.eq.)
    module procedure eq_foo
  end interface
contains
  logical function eq_foo (a, b)
    type(foo), intent(in) :: a, b
    eq_foo = (a%bar == b%bar)
  end function
end module

subroutine use_it (a, b)
  use foo_type
  type(foo) :: a, b
  print *, a == b
end subroutine

The compiler incorrectly complains (essentially) that it has no == operator for
the operands when in fact it should -- it appears that the defined .EQ.
operator is not being treated as the same as == in the module.  Here's the
compiler error:

  print *, a == b
          1
Error: Operands of comparison operator '==' at (1) are TYPE(foo)/TYPE(foo)

-- 
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.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
@ 2010-09-25  0:27 ` kargl at gcc dot gnu.org
  2010-09-25  0:35 ` neil.n.carlson at gmail dot com
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: kargl at gcc dot gnu.org @ 2010-09-25  0:27 UTC (permalink / raw)
  To: gcc-bugs

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.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
  2010-09-25  0:27 ` [Bug fortran/45786] " kargl at gcc dot gnu.org
@ 2010-09-25  0:35 ` neil.n.carlson at gmail dot com
  2010-09-25  5:57 ` sgk at troutmask dot apl.washington.edu
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: neil.n.carlson at gmail dot com @ 2010-09-25  0:35 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #2 from neil.n.carlson at gmail dot com 2010-09-25 00:27:24 UTC ---
Note also that the problem isn't restricted to .eq./== ; it appears to occur
with all the other pairs of equivalent operators: .ne./!=, .lt./<, etc.  At
least the compiler is consistent :)

-- 
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.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
  2010-09-25  0:27 ` [Bug fortran/45786] " kargl at gcc dot gnu.org
  2010-09-25  0:35 ` neil.n.carlson at gmail dot com
@ 2010-09-25  5:57 ` sgk at troutmask dot apl.washington.edu
  2010-09-25  6:51 ` sgk at troutmask dot apl.washington.edu
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2010-09-25  5:57 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #3 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2010-09-25 03:00:24 UTC ---
On Sat, Sep 25, 2010 at 12:16:53AM +0000, kargl at gcc dot gnu.org wrote:
> 
> 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(==)

I have a patch that appears to fix this one.
I think it is more of a bandaid than a proper fix
in that I think .eq. should be simply substituted
with == on the input stream during parsing.

-- 
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.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (2 preceding siblings ...)
  2010-09-25  5:57 ` sgk at troutmask dot apl.washington.edu
@ 2010-09-25  6:51 ` sgk at troutmask dot apl.washington.edu
  2010-10-03 12:21 ` fxcoudert at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2010-09-25  6:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #4 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2010-09-25 05:57:30 UTC ---
On Sat, Sep 25, 2010 at 03:00:37AM +0000, sgk at troutmask dot
apl.washington.edu wrote:
> On Sat, Sep 25, 2010 at 12:16:53AM +0000, kargl at gcc dot gnu.org wrote:
> > 
> > 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(==)
> 
> I have a patch that appears to fix this one.
> I think it is more of a bandaid than a proper fix
> in that I think .eq. should be simply substituted
> with == on the input stream during parsing.
> 

The patch was committed as

svn-commit.tmp: 8 lines, 286 characters.
Sending        gcc/fortran/ChangeLog
Sending        gcc/fortran/interface.c
Sending        gcc/testsuite/ChangeLog
Adding         gcc/testsuite/gfortran.dg/operator_c1202.f90
Transmitting file data ....
Committed revision 164616.

-- 
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.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (3 preceding siblings ...)
  2010-09-25  6:51 ` sgk at troutmask dot apl.washington.edu
@ 2010-10-03 12:21 ` fxcoudert at gcc dot gnu.org
  2010-12-16  0:26 ` dfranke at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: fxcoudert at gcc dot gnu.org @ 2010-10-03 12:21 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot
                   |                            |gnu.org

--- Comment #5 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> 2010-10-03 12:21:32 UTC ---
(In reply to comment #3)
> I think it is more of a bandaid than a proper fix
> in that I think .eq. should be simply substituted
> with == on the input stream during parsing.

IIRC, it used to be that way but it was changed to emit better diagnostics.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (4 preceding siblings ...)
  2010-10-03 12:21 ` fxcoudert at gcc dot gnu.org
@ 2010-12-16  0:26 ` dfranke at gcc dot gnu.org
  2011-05-28 19:21 ` neil.n.carlson at gmail dot com
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dfranke at gcc dot gnu.org @ 2010-12-16  0:26 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Daniel Franke <dfranke at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dfranke at gcc dot gnu.org

--- Comment #6 from Daniel Franke <dfranke at gcc dot gnu.org> 2010-12-16 00:25:54 UTC ---
Shot in the dark, isn't this related to ...

typedef enum
{ [...]
  /* ==, /=, >, >=, <, <=  */
  INTRINSIC_EQ, INTRINSIC_NE, INTRINSIC_GT, INTRINSIC_GE,
  INTRINSIC_LT, INTRINSIC_LE, 
  /* .EQ., .NE., .GT., .GE., .LT., .LE. (OS = Old-Style)  */
  INTRINSIC_EQ_OS, INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS,
  INTRINSIC_LT_OS, INTRINSIC_LE_OS, 
  [...]
}
gfc_intrinsic_op;

... which was introduced to  ...

(In reply to comment #5)
> IIRC, it used to be that way but it was changed to emit better diagnostics.

Hence
(In reply to comment #1)

>  interface operator(.eq.)
>    module procedure eq_foo
>  end interface operator(==)

would be begun with INTRINSIC_EQ_OS as operator and closed with INTRINSIC_EQ?!

If the one style is silently converted to another style during parsing, the
above could be undone?


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (5 preceding siblings ...)
  2010-12-16  0:26 ` dfranke at gcc dot gnu.org
@ 2011-05-28 19:21 ` neil.n.carlson at gmail dot com
  2011-05-28 22:02 ` tkoenig at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: neil.n.carlson at gmail dot com @ 2011-05-28 19:21 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #7 from neil.n.carlson at gmail dot com 2011-05-28 18:14:04 UTC ---
So what is the status of this defect?   It would appear to be "will not fix".


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (6 preceding siblings ...)
  2011-05-28 19:21 ` neil.n.carlson at gmail dot com
@ 2011-05-28 22:02 ` tkoenig at gcc dot gnu.org
  2011-05-29 13:18 ` [Bug fortran/45786] [4.5/4.6/4.7 Regression] " tkoenig at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-05-28 22:02 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011.05.28 21:44:52
         AssignedTo|unassigned at gcc dot       |tkoenig at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #8 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-05-28 21:44:52 UTC ---
Which test cases still fail, and which ones are fixed?

It is a bit unclear from the log...(In reply to comment #7)
> So what is the status of this defect?   It would appear to be "will not fix".

The status is more like "Nobody hasn't gotten a round tuit"...

Looking at the original test case, this now fails because the
public statement for == does not pick up the interface for .eq.
This can be seen from the module dump.

If you remove the "private", or use "interface operator(.eq.)", then
it works.  Hmm...

This patch

Index: decl.c                                                            
===================================================================      
--- decl.c      (revision 173754)                                        
+++ decl.c      (working copy)                                           
@@ -6478,9 +6478,24 @@                                                   
        case INTERFACE_INTRINSIC_OP:                                     
          if (gfc_current_ns->operator_access[op] == ACCESS_UNKNOWN)     
            {                                                            
+             gfc_intrinsic_op same_op;                                  
+                                                                        
+             same_op = INTRINSIC_NONE;                                  
+                                                                        
              gfc_current_ns->operator_access[op] =                      
                (st == ST_PUBLIC) ? ACCESS_PUBLIC : ACCESS_PRIVATE;      
+                                                                        
+             if (op == INTRINSIC_EQ)                                    
+               same_op = INTRINSIC_EQ_OS;                               
+             else if (op == INTRINSIC_EQ_OS)                            
+               same_op = INTRINSIC_EQ;                                  
+                                                                        
+             if (same_op != INTRINSIC_NONE)                             
+               gfc_current_ns->operator_access[same_op] =               
+                 (st == ST_PUBLIC) ? ACCESS_PUBLIC : ACCESS_PRIVATE;    
+                                                                        
            }                                                            
+                                                                        
          else                                                           
            {                                                            
              gfc_error ("Access specification of the %s operator at %C has "

seems to fix the bug.  It doesn't fix all cases, because it only
looks at == and .eq. and not at the other operators, but the principle
appears to be sound.

Let's see if we can get this fixed for 4.7.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5/4.6/4.7 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (7 preceding siblings ...)
  2011-05-28 22:02 ` tkoenig at gcc dot gnu.org
@ 2011-05-29 13:18 ` tkoenig at gcc dot gnu.org
  2011-05-29 18:52 ` tkoenig at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-05-29 13:18 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.6.1
            Summary|Relational operators .eq.   |[4.5/4.6/4.7 Regression]
                   |and == are not recognized   |Relational operators .eq.
                   |as equivalent               |and == are not recognized
                   |                            |as equivalent

--- Comment #9 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-05-29 13:15:11 UTC ---
This is a regression going back at least to 4.5.  We should think
about backporting it at least to there.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5/4.6/4.7 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (8 preceding siblings ...)
  2011-05-29 13:18 ` [Bug fortran/45786] [4.5/4.6/4.7 Regression] " tkoenig at gcc dot gnu.org
@ 2011-05-29 18:52 ` tkoenig at gcc dot gnu.org
  2011-05-30 17:54 ` [Bug fortran/45786] [4.5/4.6 " tkoenig at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-05-29 18:52 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #10 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-05-29 18:41:03 UTC ---
Author: tkoenig
Date: Sun May 29 18:41:00 2011
New Revision: 174412

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174412
Log:
2011-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/45786
    * interface.c (gfc_equivalent_op):  New function.
    (gfc_check_interface):  Use gfc_equivalent_op instead
    of switch statement.
    * decl.c (access_attr_decl):  Also set access to an
    equivalent operator.

2011-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/45786
    * gfortran.dg/operator_7.f90:  New test case.


Added:
    trunk/gcc/testsuite/gfortran.dg/operator_7.f90
Modified:
    trunk/gcc/fortran/decl.c
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/interface.c


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5/4.6 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (9 preceding siblings ...)
  2011-05-29 18:52 ` tkoenig at gcc dot gnu.org
@ 2011-05-30 17:54 ` tkoenig at gcc dot gnu.org
  2011-05-31 21:39 ` tkoenig at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-05-30 17:54 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.5/4.6/4.7 Regression]    |[4.5/4.6 Regression]
                   |Relational operators .eq.   |Relational operators .eq.
                   |and == are not recognized   |and == are not recognized
                   |as equivalent               |as equivalent

--- Comment #11 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-05-30 17:42:42 UTC ---
Fixed on trunk, 4.6 and 4.5 to go.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5/4.6 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (10 preceding siblings ...)
  2011-05-30 17:54 ` [Bug fortran/45786] [4.5/4.6 " tkoenig at gcc dot gnu.org
@ 2011-05-31 21:39 ` tkoenig at gcc dot gnu.org
  2011-05-31 22:04 ` [Bug fortran/45786] [4.5 " tkoenig at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-05-31 21:39 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #12 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-05-31 21:37:04 UTC ---
Author: tkoenig
Date: Tue May 31 21:37:01 2011
New Revision: 174513

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174513
Log:
2011-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

    Backport from trunk
    PR fortran/45786
    * interface.c (gfc_equivalent_op):  New function.
    (gfc_check_interface):  Use gfc_equivalent_op instead
    of switch statement.
    * decl.c (access_attr_decl):  Also set access to an
    equivalent operator.

2011-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

    Backport from trunk
    PR fortran/45786
    * gfortran.dg/operator_7.f90:  New test case.


Added:
    branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/operator_7.f90
Modified:
    branches/gcc-4_6-branch/gcc/fortran/ChangeLog
    branches/gcc-4_6-branch/gcc/fortran/decl.c
    branches/gcc-4_6-branch/gcc/fortran/gfortran.h
    branches/gcc-4_6-branch/gcc/fortran/interface.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (11 preceding siblings ...)
  2011-05-31 21:39 ` tkoenig at gcc dot gnu.org
@ 2011-05-31 22:04 ` tkoenig at gcc dot gnu.org
  2011-06-02  9:10 ` tkoenig at gcc dot gnu.org
  2011-06-02  9:12 ` tkoenig at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-05-31 22:04 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.1                       |4.5.4
            Summary|[4.5/4.6 Regression]        |[4.5 Regression] Relational
                   |Relational operators .eq.   |operators .eq. and == are
                   |and == are not recognized   |not recognized as
                   |as equivalent               |equivalent


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (12 preceding siblings ...)
  2011-05-31 22:04 ` [Bug fortran/45786] [4.5 " tkoenig at gcc dot gnu.org
@ 2011-06-02  9:10 ` tkoenig at gcc dot gnu.org
  2011-06-02  9:12 ` tkoenig at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-06-02  9:10 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

--- Comment #13 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-06-02 09:09:57 UTC ---
Author: tkoenig
Date: Thu Jun  2 09:09:53 2011
New Revision: 174560

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174560
Log:
2011-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

    Backport from trunk
    PR fortran/45786
    * interface.c (gfc_equivalent_op):  New function.
    (gfc_check_interface):  Use gfc_equivalent_op instead
    of switch statement.
    * decl.c (access_attr_decl):  Also set access to an
    equivalent operator.

2011-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

    Backport from trunk
    PR fortran/45786
    * gfortran.dg/operator_7.f90:  New test case.


Added:
    branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/operator_7.f90
Modified:
    branches/gcc-4_5-branch/gcc/fortran/ChangeLog
    branches/gcc-4_5-branch/gcc/fortran/decl.c
    branches/gcc-4_5-branch/gcc/fortran/gfortran.h
    branches/gcc-4_5-branch/gcc/fortran/interface.c
    branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug fortran/45786] [4.5 Regression] Relational operators .eq. and == are not recognized as equivalent
  2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
                   ` (13 preceding siblings ...)
  2011-06-02  9:10 ` tkoenig at gcc dot gnu.org
@ 2011-06-02  9:12 ` tkoenig at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-06-02  9:12 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45786

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #14 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-06-02 09:10:44 UTC ---
Fixed on 4.5 as well.

Closing.


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-06-02  9:12 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-24 23:45 [Bug fortran/45786] New: Relational operators .eq. and == are not recognized as equivalent neil.n.carlson at gmail dot com
2010-09-25  0:27 ` [Bug fortran/45786] " kargl at gcc dot gnu.org
2010-09-25  0:35 ` neil.n.carlson at gmail dot com
2010-09-25  5:57 ` sgk at troutmask dot apl.washington.edu
2010-09-25  6:51 ` sgk at troutmask dot apl.washington.edu
2010-10-03 12:21 ` fxcoudert at gcc dot gnu.org
2010-12-16  0:26 ` dfranke at gcc dot gnu.org
2011-05-28 19:21 ` neil.n.carlson at gmail dot com
2011-05-28 22:02 ` tkoenig at gcc dot gnu.org
2011-05-29 13:18 ` [Bug fortran/45786] [4.5/4.6/4.7 Regression] " tkoenig at gcc dot gnu.org
2011-05-29 18:52 ` tkoenig at gcc dot gnu.org
2011-05-30 17:54 ` [Bug fortran/45786] [4.5/4.6 " tkoenig at gcc dot gnu.org
2011-05-31 21:39 ` tkoenig at gcc dot gnu.org
2011-05-31 22:04 ` [Bug fortran/45786] [4.5 " tkoenig at gcc dot gnu.org
2011-06-02  9:10 ` tkoenig at gcc dot gnu.org
2011-06-02  9:12 ` tkoenig at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).