Table of Contents
Previous: -symtab
Option: truncation
-truncation=list
Warn about possible truncation (or roundoff) errors. Most of these are
related to integer arithmetic. By default, all warnings are turned on.
This setting provides detailed control over the warnings about possible
truncation errors. The list consists of keywords separated by commas
or colons. Since all warnings are on by default, include a keyword prefixed
by no- to turn off a particular warning. There are three special keywords:
all to turn on all the warnings about truncation, none to turn them
all off, and help to print the list of all the keywords with a brief
explanation of each. If list is omitted, -truncation is equivalent to
-truncation=all , and -notruncation is equivalent to -truncation=none . The
warning keywords with their meanings are as follows:
- int-div-exponent:
- use of the result of integer division as an exponent. This suggests that
a real quotient is intended. An example would be writing X**(1/3) to evaluate
the cube root of X . The correct expression is X**(1./3.) .
- int-div-real:
- Conversion
of an expression involving an integer division to real. This suggests that
a real quotient is intended.
- int-div-zero:
- division in an integer constant
expression that yields a result of zero.
- int-neg-power:
- exponentiation of
an integer by a negative integer (which yields zero unless the base integer
is 1 in magnitude). This suggests that a real base is intended.
- promotion:
- automatic conversion of a lower precision quantity to one of higher precision.
The loss of accuracy for real variables in this process is comparable
to the corresponding demotion. No warning is given for promotion of integer
quantities to real since this is ordinarily exact.
- real-do-index:
- use of
a non-integer DO index in a loop with integer bounds. An integer DO index
with real bounds is always warned about regardless of this setting.
- real-subscript:
- use of a non-integer array subscript.
- significant-figures:
- overspecifying
a single precision constant. This may indicate that a double precision
constant was intended.
- size-demotion:
- automatic conversion of a higher
precision quantity to one of lower precision of the same type. This warning
only occurs when an explicit size is used in declaring the type of one
or both operands in an assignment. For example, a warning wil be issued
where a REAL*8 variable is assigned to a REAL variable, if the default
wordsize of 4 is in effect. type-demotion: automatic conversion of a higher
precision quantity to one of lower precision of different type. This warning
includes conversion of real quantities to integer, double precision to
single precision real, and assignment of a longer character string to
a shorter one.
The warnings about promotion and demotion also apply to
complex constants, considering the precision to be that of the real or
imaginary part. Warnings about promotions and demotions are given only
when the conversion is done automatically, e.g. in expressions of mixed
precision or in an assignment statement. If intrinsic functions such as
INT are used to perform the conversion, no warning is given.
See also:
-portability , -wordsize .
Next: -usage