Knowledge Base

BUG: FOR1252 Error USE of Module in Internal Module Procedure

PSS ID Number: 149136

Article Last Modified on 11/2/1999


The information in this article applies to:


This article was previously published under Q149136

SYMPTOMS

Using a user-defined data type defined in one module at another module's internal procedure level where the internal procedure defines the behavior of either the INTERFACE OPERATOR(+) or INTERFACE OPERATOR(-) specified by the MODULE PROCEDURE statement, causes the following internal compiler error:
error FOR1252: internal compiler error detected between % and X

Internal Error -- please report this bug Command line error D2013: internal compiler error.

RESOLUTION

Specify the USE of the user-defined data type at the module level not at the module's internal procedure level.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Sample Code to Illustrate Problem

! Compile options needed: /c

      Module VALUES
        Type VAL ; Real :: x ; End Type VAL
      End Module VALUES

      Module COMPUT
! Uncomment the following line for work-around
!      USE VALUES
      Interface Operator (+)
        Module Procedure VAL_PLUS
      End Interface
      Contains
        Type(VAL) Function VAL_PLUS (A,B) Result(C)
! Comment the following line for work-around
          USE VALUES
          Implicit None
          Type(VAL), Intent(In) :: A, B
          C%x = A%x + B%x
        End Function VAL_PLUS
      End Module COMPUT
				

Additional query words: 4.00

Keywords: kbLangFortran KB149136
Technology: kbAudDeveloper kbFORTRANPower400NT kbFortranSearch kbZNotKeyword8