FIX: Constants Out of Range Not Found by /4YbLast reviewed: September 18, 1997Article ID: Q109874 |
1.00 1.00a | 1.00
MS-DOS | WINDOWS NTkbtool kbfixlist The information in this article applies to: - Microsoft FORTRAN PowerStation for MS-DOS, version 1.0 and 1.0a - Microsoft FORTRAN PowerStation 32 for Windows NT, version 1.0
SYMPTOMSA program that contains a simple arithmetic expression including constant out of range may produce incorrect results. Using the -4Yb compiler option does not give a run-time error on constants that are out of range even though it should.
CAUSEThe constant folding algorithm (arithmetic performed at compile time) generates 0 (zero) for the variable out of range.
RESOLUTIONAvoid using a simple constant expression that might be out of range. Use the temporary variable for the intermediate results and then use this variable in the expression. Compile the program with -4Yb and the appropriate run-time error will be generated.
STATUSMicrosoft has confirmed this to be a problem in Microsoft FORTRAN PowerStation 32 for NT, version 1.0 and FORTRAN Powerstation for MS-DOS version 1.0 and 1.0a. This is not a problem in Microsoft FORTRAN for MS-DOS, version 5.1, or FORTRAN PowerStation 32, version 4.0.
MORE INFORMATION
Sample Code #1c Compile options required: -4Yb does not affect the behavior c The following code reproduces the problem.
i=2**50 write (*,*) i end Sample Code #2c Compile options required: -4Yb c The following code solves the problem and generates the following c run-time error: run-time F6099: $DEBUG c -INTEGER arithmetic overflow j=50 i=2**j write (*,*) i end |
Additional reference words: 1.00 runtime run time
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |