FIX: Alternate Return Compiled with /Ox Can GPF at Run TimeLast reviewed: September 16, 1997Article ID: Q106725 |
1.00
MS-DOS
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSThe FORTRAN PowerStation optimizer may generate incorrect code when compiling routines containing alternate returns. If routines containing alternate returns are compiled with /Ox, the following errors may occur at run time:
DOSXMSF : fatal error DX1020: unhandled exception: General protection fault; Fault occurred in a System Call RESOLUTIONAltering code around the alternate return may alleviate this problem. If this doesn't work, then do not compile routines using alternate returns with /Ox. Note that other routines in the program can still be optimized.
STATUSMicrosoft has confirmed this to be a problem in FORTRAN PowerStation version 1.0 for MS-DOS. This problem has been resolved with FORTRAN PowerStation maintenance release version 1.0A for MS-DOS.
MORE INFORMATIONTo duplicate the error, compile the sample code with /Ox and then run the program to get the DX1020 error. This problem is dependent on the surrounding code. Replacing "var=1.0" with "continue", or commenting out "goto 10" in the sample below removes the problem: FORTRAN PowerStation version 1.0 can be differentiated from the maintenance release version 1.0A by invoking the linker. Typing "link32 | more" from /F32/BIN directory will show version 2.8 for FORTRAN Powerstation maintenance release version 1.0A for MS-DOS."
Sample Code
call test(*10,*20) 10 var=1.0 20 if (var.ne.0) return goto 10 end subroutine test(*,*) return 1 end |
Additional reference words: 1.00 GP fault gp-fault gpf buglist1.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |