编译错误:`致命错误:gfc_todo:`

时间:2016-03-27 11:56:41

标签: linux compiler-errors fortran gfortran

编译代码时
     gfortran -O2 calpuff.for -o calpuff.exe 

以下代码:

      REAL FUNCTION R1MACH (I)
C***BEGIN PROLOGUE  R1MACH
C   ...
      real SMALL(2)
      real LARGE(2)
      real RIGHT(2)
      real DIVER(2)
      real LOG10(2)
c --- Set up for IBM PC: declare as reals   ..........(DGS)
C
      REAL RMACH(5)
      SAVE RMACH
C
      EQUIVALENCE (RMACH(1),SMALL(1))
      EQUIVALENCE (RMACH(2),LARGE(1))
      EQUIVALENCE (RMACH(3),RIGHT(1))
      EQUIVALENCE (RMACH(4),DIVER(1))
      EQUIVALENCE (RMACH(5),LOG10(1))
C   ...
      DATA SMALL(1) / 1.18E-38      /
      DATA LARGE(1) / 3.40E+38      /
      DATA RIGHT(1) / 0.595E-07     /
      DATA DIVER(1) / 1.19E-07      /
      DATA LOG10(1) / 0.30102999566 /
C   ...
C***FIRST EXECUTABLE STATEMENT  R1MACH
      IF (I .LT. 1 .OR. I .GT. 5) CALL XERMSG ('SLATEC', 'R1MACH',
     +   'I OUT OF BOUNDS', 1, 2)
C
      R1MACH = RMACH(I)
      RETURN
C
      END

结果显示以下错误:

    calpuff.for: In function ‘r1mach’:
    calpuff.for:58522: fatal error: gfc_todo: Not Implemented: Initialization of overlapping variables
    compilation terminated.

第58522行对应于所示代码的第一行。

为什么会出现此错误?

有关我的编译器的一些信息:gcc版本4.1.2 20080704(Red Hat 4.1.2-54)

1 个答案:

答案 0 :(得分:3)

这是gfortran中的已知编译器错误,请参阅herehere。这个bug已于2007年修复。

请更新到gfortran的更新版本。