Microsoft KB Archive/106725

From BetaArchive Wiki
Knowledge Base

PSS ID Number: 106725

Article Last Modified on 3/24/2000

The information in this article applies to:

  • Microsoft FORTRAN PowerStation for MS-DOS 1.0

This article was previously published under Q106725


The 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


Altering 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.


Microsoft 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.


To 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 ( return
      goto 10

      subroutine test(*,*)
      return 1

Additional query words: 1.00 GP fault gp-fault gpf buglist1.00 fixlist1.00A

Keywords: kbbug KB106725
Technology: kbAudDeveloper kbFORTRANPower100DOS kbFortranSearch kbZNotKeyword3