Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29230 Discussions

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

FortranFan
Honored Contributor III
883 Views
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 Kudos
5 Replies
FortranFan
Honored Contributor III
883 Views
  • 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?
0 Kudos
FortranFan
Honored Contributor III
883 Views

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.

0 Kudos
pbkenned1
Employee
883 Views

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

0 Kudos
pbkenned1
Employee
883 Views

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

0 Kudos
Steven_L_Intel1
Employee
883 Views

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.

0 Kudos
Reply