This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libfortran/52087] program does not follow logical rules


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

--- Comment #3 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2012-02-02 02:10:04 UTC ---
On Thu, Feb 02, 2012 at 12:57:29AM +0000, ryan.maclellan at ua dot edu wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52087
> 
> --- Comment #2 from Ryan MacLellan <ryan.maclellan at ua dot edu> 2012-02-02 00:57:29 UTC ---
> I believe precedence is as follows:
> arithmetic expressions evaluated first
> followed by relational operators
> followed by logical operators
> 
> In this case I believe .eqv. are relational operators (equivalent to .eq.) and
> .or. is the logical operator.  So the .or. should be evaluated last but it
> doesn't seem to be.  If this is not the design precedence or .eqv. is not
> considered a relational operators then I may simply be in error.  Otherwise I
> think this is a bug.
> 

See Table 7.7 in the Fortran 2003 standard (Or your favorite
Fortran reference).

Table 7.7: Categories of operations and relative precedence
Category of operation              Operators              Precedence
     Extension                 defined-unary-op            Highest
      Numeric                          **                      .
      Numeric                        * or /                    .
      Numeric                    unary + or -                  .
      Numeric                   binary + or -                  .
     Character                         //                      .
     Relational       .EQ., .NE., .LT., .LE., .GT., .GE.,
                           ==, /=, <, <=, >, >=                .
      Logical                       .NOT.                      .
      Logical                       .AND.                      .
      Logical                        .OR.                      .
      Logical                 .EQV. or .NEQV.                  .
     Extension                defined-binary-op             Lowest


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]