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

Internal compiler error with long names - ifort 15.0.2

YG
Beginner
1,646 Views

Hello,

I have recently run into an internal compiler error with ifort 15.0, for a piece of code that works just fine with Ifort 14.0.  I think this is a regression bug.

The catastrophic error shows up when I create a polymorphic pointer to an extended type with a long name, which is defined within a module that also has a long name.  I see the error whenever the sum of the two names (module + type) is equal to or larger than 110 characters.

Please consider the following code:

module     module________________with_a_long_name_of_55_characters
  type  :: type__________________with_a_long_name_of_55_characters
    integer :: i
  end type type__________________with_a_long_name_of_55_characters
end module module________________with_a_long_name_of_55_characters

program p

 use module________________with_a_long_name_of_55_characters, only: &
     type__________________with_a_long_name_of_55_characters

 implicit none
 class(type__________________with_a_long_name_of_55_characters), pointer :: sim

 allocate(type__________________with_a_long_name_of_55_characters::sim)
 sim%i = 4
 write(*,*) sim%i

end program p

Compiling with

$ ifort -stand f08 p.f90 -o -p

I see the error

101004_2054

catastrophic error: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
compilation aborted for p.F90 (code 1)

The same code is correctly compiled by ifort 14.0.

$ifort -V
Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.2.164 Build 20150121

Thanks,
Yaman

0 Kudos
1 Solution
Steven_L_Intel1
Employee
1,646 Views

We've identified the underlying problem, which is in all compilers but it's very dependent on memory layout. We hope to get at least a partial fix in for XE 2015 Update 4, and a more comprehensive fix in for the 16.0 compiler.

View solution in original post

0 Kudos
9 Replies
Steven_L_Intel1
Employee
1,646 Views

Thanks - we'll check it out.

0 Kudos
Steven_L_Intel1
Employee
1,646 Views

Escalated as issue DPD200369789. I was intrigued to note that I could not reproduce this on Windows, just Linux. 15.0.3 has the same bad behavior. Thanks for the nice example.

0 Kudos
mecej4
Honored Contributor III
1,646 Views

The error is still present on Windows when generating 32-bit objects:

S:\lang>ifort /stand:f08 longn.f90
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 15.0.3.208 Build 20150407
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

fortcom: Fatal: There has been an internal compiler error (C0000005).
compilation aborted for longn.f90 (code 1)

 

0 Kudos
Steven_L_Intel1
Employee
1,646 Views

So it is...  Thanks.

0 Kudos
Steven_L_Intel1
Employee
1,647 Views

We've identified the underlying problem, which is in all compilers but it's very dependent on memory layout. We hope to get at least a partial fix in for XE 2015 Update 4, and a more comprehensive fix in for the 16.0 compiler.

0 Kudos
YG
Beginner
1,646 Views

This is good news, I look forward to having ifort 15.0.4 on our cluster.

Thank you.  Yaman.

0 Kudos
Lorri_M_Intel
Employee
1,646 Views

Not to correct Steve, but the actual update will be XE 2015 Update 5, due out later this year.

                    --Lorri

0 Kudos
Steven_L_Intel1
Employee
1,646 Views

It's for large values of 4....

0 Kudos
Steven_L_Intel1
Employee
1,646 Views

The "more comprehensive" fix is planned for 16.0.2, scheduled for February.

0 Kudos
Reply