Microsoft KB Archive/104776

From BetaArchive Wiki
Knowledge Base


Article ID: 104776

Article Last Modified on 10/2/2003



APPLIES TO

  • Microsoft FORTRAN PowerStation 1.0 Standard Edition
  • Microsoft Fortran PowerStation 1.0a for MS-DOS



This article was previously published under Q104776

SYMPTOMS

A program may execute in an infinite loop if it was compiled with full optimization (-Ox) and contains a do loop calling some of the graphics routines [such as POLYGON_W()].

CAUSE

Some of the graphics functions (such as POLYGON_W) prevent optimized code from recognizing the end condition for the loop.

STATUS

Microsoft has confirmed this to be a problem in FORTRAN PowerStation for MS-DOS, version 1.0 and 1.0a.

This problems does not apply to FORTRAN PowerStation 32.

RESOLUTION

Compile the program with no optimization (this is the default).

Sample Code

c Compile options needed:    -Ox
c The following program will output in an infinite loop:

      include 'fgraph.fi'
      include 'fgraph.fd'
      INTEGER*2  status, npts

      RECORD     / wxycoord /  wxyarr(3)

      status = setvideomode(18)
      do it=1,2
         write (*,'(i4\)') it
         wxyarr(1).wx = 43.d0
         wxyarr(1).wy = 85.d0
         wxyarr(2).wx = 50.d0
         wxyarr(2).wy = 71.d0
         wxyarr(3).wx = 45.d0
         wxyarr(3).wy = 85.d0
         npts = 3
         status = POLYGON_W($GBORDER, wxyarr, npts)
      enddo
      END
                


Additional query words: nofpsnt 1.00

Keywords: KB104776