The compiler cooofd and died when it saw my bad code

The compiler cooofd and died when it saw my bad code

Erroneous code ahead!

MODULE Entities
  IMPLICIT NONE
  
  PRIVATE
  
  TYPE, PUBLIC :: EntityRef
    TYPE(EntityTable), POINTER :: table => NULL()
  END TYPE EntityRef
  
  TYPE, PUBLIC :: EntityTable
    TYPE(EntityTable), POINTER :: parent => NULL()
    INTEGER :: component_i_forgot_to_reference
  END TYPE EntityTable
CONTAINS
  SUBROUTINE WriteEntityRef(unit, ref)
    INTEGER, INTENT(IN) :: unit
    TYPE(EntityRef), INTENT(IN) :: ref
    !***************************************************************************
    WRITE (unit, "(I0)", ADVANCE='NO')  &
        ref%table   ! <-- BAD PROGRAMMER FORGOT COMPONENT.
  END SUBROUTINE WriteEntityRef
END MODULE Entities

results in:

>ifort /check:all /warn:all /standard-semantics Entities.f90
Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 14.0.0.103 Build 20130728
Copyright (C) 1985-2013 Intel Corporation.  All rights reserved.
fortcom: Fatal: There has been an internal compiler error (C00000FD).
compilation aborted for Entities.f90 (code 1)

plus some head smacking when I realised what I'd done wrong, after preparing the above example.

3 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

Hi Ian

I will investigate the issue. Thanks very much for the small test case

Heinz

the problem has been reported already and got fixed internally a few days ago. Issue number is DPD200248140. The fix will be available in an update of compiler 14.0

登陆并发表评论。