PRB: L1103 From DATA Initialization Beyond End of Array

ID: Q88012


The information in this article applies to:
  • Microsoft FORTRAN for MS-DOS, version 5.1
  • Microsoft FORTRAN for OS/2, version 5.1


SYMPTOMS

Compiling and linking code that contains a DATA statement that uses an implied DO-loop to initialize an array in a COMMON block and that implied DO-loop initializes beyond the end of the array may cause the following linker error:

fatal error L1103: attempt to access data outside segment bounds


CAUSE

The compiler is not issuing an error message when the DATA beyond the end of the array is being allocated. This causes the object module to contain data initialized past the end of the COMMON block and crossing a segment bound.


RESOLUTION

Make sure that all DATA statement initializations of data in COMMON blocks are within the bounds of the data as declared.

This is not a problem in FORTRAN PowerStation.


MORE INFORMATION

The following code can be used to demonstrate the problem.

Sample Code


      integer*4 test(1)
      common /comtest/ test
      data (test(i),i=1,2)/7,8/ 
      end 

Additional query words: 5.10 nofps

Keywords :
Version : :5.1
Platform :
Issue type :


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