------- Comment #9 from tobi at gcc dot gnu dot org  2005-11-06 00:22 -------
One can get quite interesting results out of g77, e.g.
[EMAIL PROTECTED]:~/src/tests> cat ugly.f
      LOGICAL L, M
      equivalence (i,l)
      DO i=0,5
        M = i
        PRINT "(5l2)", l, m, l.neqv..true., m.neqv..true., m.neqv.l
      END DO
      END
[EMAIL PROTECTED]:~/src/tests> g77 ugly.f -fugly-logint
[EMAIL PROTECTED]:~/src/tests> ./a.out
 F F T T F
 T T F F F
 T T T T F
 T T T T F
 T T T T F
 T T T T F
[EMAIL PROTECTED]:~/src/tests> 
replacing .neqv. with .eqv. on the other hand gives the "correct" result.

> The test program shows that we don't currently implement the part
>
> > When
> > converting from INTEGER to LOGICAL, the value zero is interpreted as
> > @code{.FALSE.} and any nonzero value is interpreted as @code{.TRUE.}.

Note that the equivalence doesn't imply conversion, so we don't contradict our
documentation.

Overall, given the inconsistencies in g77, and also between different other
compilers, I think we shouldn't bother fixing this.  I agree that adding a
warning to the documentation is a good idea.


-- 


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

Reply via email to