diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2023-03-19 18:34:38 +0100 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2023-03-19 18:34:38 +0100 |
commit | 655689f6be8606991f8a3359eadf017af7238a88 (patch) | |
tree | 81577af9f9fd3b548d53dcd380590ecd00e748ac /gcc | |
parent | 14361c5a4696ad4e4635aa439173bfc0a2c19060 (diff) | |
download | gcc-655689f6be8606991f8a3359eadf017af7238a88.zip gcc-655689f6be8606991f8a3359eadf017af7238a88.tar.gz gcc-655689f6be8606991f8a3359eadf017af7238a88.tar.bz2 |
Mention undefined behavior on integer overflow.
gcc/fortran/ChangeLog:
* gfortran.texi: Mention behavior on overflow.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/gfortran.texi | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index c483e13..b967129 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -820,6 +820,7 @@ might in some way or another become visible to the programmer. * File operations on symbolic links:: * File format of unformatted sequential files:: * Asynchronous I/O:: +* Behavior on integer overflow:: @end menu @@ -1160,6 +1161,23 @@ sytems, such as Linux, it is necessary to specify @option{-pthread}, @c Maybe this chapter should be merged with the 'Standards' section, @c whenever that is written :-) +@node Behavior on integer overflow +@section Behavior on integer overflow +@cindex integer overflow +@cindex overflow handling + +Integer overflow is prohibited by the Fortran standard. The behavior +of gfortran on integer overflow is undefined by default. Traditional +code, like linear congruential pseudo-random number generators in old +programs that rely on specific, non-standard behavior may generate +unexpected results. The @option{-fsanitize=undefined} option can be +used to detect such code at runtime. + +It is recommended to use the intrinsic subroutine @code{RANDOM_NUMBER} +for random number generators or, if the old behavior is desired, to +use the @option{-fwrapv} option. Note that this option can impact +performance. + @node Extensions @chapter Extensions @cindex extensions |