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