FIX: Substring Out of Range Hangs with -4Yb -Ox -G5

ID: Q108346


The information in this article applies to:
  • Microsoft Fortran Powerstation 32 for Windows NT, version 1.0


SYMPTOMS

An attempt to execute a program that is compiled using the -4Yb, -Ox, and -G5 options and that contains a character substring expression out of range may cause the application to hang.


CAUSE

Compiler options -4Yb and -G5, along with the optimization (option -Ox) cause the compiler to generate incorrect code.


RESOLUTION

This problem does not occur with a different combination of options. Avoid the -Ox optimization option, the -4Yb extended-error-handling option, or use the -G4 processor option instead of -G5.


STATUS

Microsoft has confirmed this to be a problem in FORTRAN PowerStation 32 for Windows NT, version 1.0. This problem was fixed in FORTRAN PowerStation, version 4.0.


MORE INFORMATION

The example program below demonstrates the problem:

Sample Code


C Compile options needed: -4Yb, -Ox and -G5

      character m*10 /'1234567890'/ 
      l = 3
      write(*,*) l ! putting this inside the loop avoids hang
      do while (m(l:l) .ne. 'Q')
      l = l + 1
      end do
      write(*,*) 'L = ', l
      write(*,*) 'M = ', m
      end 

Additional query words: 1.00 lock halt

Keywords :
Version : :1.0
Platform :
Issue type :


Last Reviewed: November 1, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.