Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29231 ディスカッション

Internal error (an ICE?) with a parameterized derived type

FortranFan
名誉コントリビューター III
885件の閲覧回数
module m

   implicit none

   type :: t(n,m)

      integer, len :: n
      integer, len :: m
      real :: x(n)
      real :: y((m-1)*n)     !.. real :: y(m*n - n) compiles ok

   end type

contains

   subroutine set(this)

      !.. Argument list
      type(t(*,*)), intent(inout) :: this

      this%x = 0.0
      this%y = 0.0

      return

   end subroutine set

end module m

 

------ Build started: Project: p, Configuration: Debug|Win32 ------

Compiling with Intel(R) Visual Fortran Compiler XE 15.0.2.179 [IA-32]...
m.f90
C:\..\m.f90(19): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
      type(t(*,*)), intent(inout) :: this
^
[ Aborting due to internal error. ]
compilation aborted for C:\..\m.f90 (code 1)

 

0 件の賞賛
5 返答(返信)
FortranFan
名誉コントリビューター III
885件の閲覧回数
  • Please note the comment on line 10.
  • Is "internal errror" the same as "internal compiler error"?  The output text with the error appears different; a change with the recent update, Compiler 2015 Update 2?
FortranFan
名誉コントリビューター III
885件の閲覧回数

I thought the error may have something to do with a name conflict with m; module name versus the second type parameter (even thought that won't explain the cases where the code compiles ok).  But changing one of the names, say the type parameter to p, makes no difference; the error persists.

pbkenned1
従業員
885件の閲覧回数

Thanks for reporting this; I can reproduce [ Aborting due to internal error. ] and I'll report this to the developers.  I assume the error is the same as 'internal compiler error', but I'll confirm that as well.

Patrick

pbkenned1
従業員
885件の閲覧回数

The 'Aborting due to internal error' has been reported to the developers.  I've noted in the report:

1) Changing  'real :: y((m-1)*n)' to 'real :: y(m*n - n)' will result in a clean compile

2) Asked if 'Aborting due to internal error' is the same as 'internal compiler error'

I'll pass along updates received from the developers.

Internal tracking ID:  DPD200366574

Patrick

Steven_L_Intel1
従業員
885件の閲覧回数

For question 2, yes, that's another form of internal compiler error. Which message you see depends on which part of the compiler is executing and whether the error is an inconsistency detected by the compiler or an exception such as access violation.

返信