Node: Ugly Integer Conversions, Next: Ugly Assigned Labels, Previous: Ugly Conversion of Initializers, Up: Distensions
The constructs enabled via -fugly-logint
are:
INTEGER
and LOGICAL
as
dictated by
context (typically implies nonportable dependencies on how a
particular implementation encodes .TRUE.
and .FALSE.
).
LOGICAL
variable in ASSIGN
and assigned-GOTO
statements.
The above constructs are disabled by default because use of them tends to lead to non-portable code. Even existing Fortran code that uses that often turns out to be non-portable, if not outright buggy.
Some of this is due to differences among implementations as
far as how .TRUE.
and .FALSE.
are encoded as
INTEGER
values--Fortran code that assumes a particular
coding is likely to use one of the above constructs, and is
also likely to not work correctly on implementations using
different encodings.
See Equivalence Versus Equality, for more information.