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