FIX: L2029 with RAISEQQ Caused by INTERFACE in FLIB.FI (83646)



The information in this article applies to:

  • Microsoft FORTRAN Compiler for MS-DOS 5.1
  • Microsoft FORTRAN compiler for OS/2 5.1

This article was previously published under Q83646

SYMPTOMS

Code compiled with Microsoft FORTRAN 5.1 that contains a call to the RAISEQQ function may cause the linker to generate the following error:
error L2029: 'RAISEQQ' : unresolved external

CAUSE

The interface file FLIB.FI contains an incorrect entry for the RAISEQQ function. The INTERFACE statement below, contained within the FLIB.FI file, fails to alias the function _raise included in the run-time library:
      INTERFACE TO INTEGER*2 FUNCTION RAISEQQ(SIGNAL)
      INTEGER*2 SIGNAL [valve]
      END
				

RESOLUTION

Edit the RAISEQQ INTERFACE statement in the file FLIB.FI to correctly alias the function _raise. The INTERFACE to the RAISEQQ function should then resemble the following:
      INTERFACE TO INTEGER*2 FUNCTION RAISEQQ[c,loadds,alias:'_raise']
     +                                       (SIGNAL)
      INTEGER*2 SIGNAL[valve]
      END
				

STATUS

Microsoft has confirmed this to be a problem in Microsoft FORTRAN version 5.1 for MS-DOS and OS/2. This problem was corrected in FORTRAN PowerStation.

MORE INFORMATION

Sample Code #1

The following program will generate the L2029 link error:
     include 'flib.fi'

      program testraiseqq
      include 'flib.fd'

      integer*2 returnval

      a=1.0  ! Need this to initialize floating point run-time
      returnval = raiseqq(sig$fpe)
      print*, 'failed to terminate, return value is: ',returnval
      end
				

Modification Type:MajorLast Reviewed:10/23/2003
Keywords:kbfix KB83646