+2006-09-30 Brooks Moses <bmoses@stanford.edu>
+
+ * invoke.texi: Add mention of BOZ constants and integer
+ overflow to -fno-range-check.
+ * gfortran.texi: Add mention of -fno-range-check to
+ section on BOZ contants.
+
2006-09-30 Bernhard Fischer <aldot@gcc.gnu.org>
* resolve.c: Fix commentary typo. Fix whitespace.
@code{INTEGER} variable. @command{gfortran} permits a BOZ to appear
in any initialization expression as well as assignment statements.
-The use of a BOZ literal constant to initialize a @code{REAL} variable will
-lead to confusion. A BOZ literal constant is converted to an
-@code{INTEGER} with the kind type with the largest decimal representation
-before a conversion to a @code{REAL} variable. That is, one should not
-expect a bitwise copy of the BOZ literal constant to be assigned to the
-@code{REAL}.
+Attempts to use a BOZ literal constant to do a bitwise initialization of a
+variable can lead to confusion. A BOZ literal constant is converted to an
+@code{INTEGER} value with the kind type with the largest decimal representation,
+and this value is then converted numerically to the type and kind of the
+variable in question. Thus, one should not expect a bitwise copy of the BOZ
+literal constant to be assigned to a @code{REAL} variable.
+
+Similarly, initializing an @code{INTEGER} variable with a statement such as
+@code{DATA i/Z'FFFFFFFF'/} will produce an integer overflow rather than the
+desired result of @math{-1} when @code{i} is a 32-bit integer on a system that
+supports 64-bit integers. The @samp{-fno-range-check} option can be used as
+a workaround for legacy code that initializes integers in this manner.
+
@node Real array indices
@section Real array indices
@itemize
@item
Intrinsics @code{command_argument_count}, @code{get_command},
-@code{get_command_argument}, and @code{get_environment_variable}.
+@code{get_command_argument}, @code{get_environment_variable}, and
+@code{move_alloc}.
@item
@cindex Array constructors
@item
@cindex TR 15581
-The following parts of TR 15581:
+TR 15581:
@itemize
@item
@cindex @code{ALLOCATABLE} dummy arguments
-The @code{ALLOCATABLE} attribute for dummy arguments.
+@code{ALLOCATABLE} dummy arguments.
@item
@cindex @code{ALLOCATABLE} function results
@code{ALLOCATABLE} function results
+@item
+@cindex @code{ALLOCATABLE} components of derived types
+@code{ALLOCATABLE} components of derived types
@end itemize
@item
during compilation. For example, by default, @command{gfortran} will give
an overflow error at compile time when simplifying @code{a = EXP(1000)}.
With @samp{-fno-range-check}, no error will be given and the variable @code{a}
-will be assigned the value @code{+Infinity}.
+will be assigned the value @code{+Infinity}. Similarly,
+@code{DATA i/Z'FFFFFFFF'/} will result in an integer overflow on most systems,
+but with @samp{-fno-range-check} the value will ``wrap around'' and @code{i}
+will be initialized to @math{-1} instead.
@cindex -std=@var{std} option
@cindex option, -std=@var{std}