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

Internal Compiler Error (C0000005)

avinashs
New Contributor I
983 Views

I am getting a repeated internal compiler error (see below). It only occurs in the debug mode. After closing MSVSC2019 and restarting, it disappears for one compilation and then reappears. Is there a specific reason for this kind of error? It is my understanding that an internal compiler error is always a bug.

Compiling with Intel(R) Visual Fortran Compiler 19.1.1.216 [IA-32]...
ifort /nologo /debug:full /Od /warn:interfaces /module:"Debug\\" /object:"Debug\\" /Fd"Debug\vc160.pdb" /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /c /assume:norealloc_lhs /fp:consistent /real-size:64 /fpconstant /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86" /Qm32 "my_program.f90"
fortcom: Fatal: There has been an internal compiler error (C0000005).
compilation aborted for my_program.f90 (code 1)

 

0 Kudos
3 Replies
Steve_Lionel
Honored Contributor III
976 Views

Your understanding is correct. Please file a problem report with the Intel Online Service Center. There's no way to know what the reason is without the developers being able to reproduce it.

0 Kudos
Andrew_Smith
New Contributor III
943 Views
I have same issue with 19.1. Tried time and again to work around many of these errors. Filed a bug report. Gone back to 19.0.
0 Kudos
avinashs
New Contributor I
921 Views

Thanks, @Andrew_Smith. Seems to be a random error.  I have narrowed the error down to the following:

1. It occurs in debug mode and not in release mode.
2. The release version compiles and runs accurately.
3. Further analysis has revealed that the error is caused by passing a derived type argument to one of the subroutines i.e. subroutine A has a derived type argument (X) and subroutine A calls subroutine B which also uses X as an argument. The error is triggered when subroutine B is called from A with X as an argument. The error disappears when X is removed as an argument to B and defined/specified internally within B.

I created an example with a similar structure as the main project that has a problem. However, the error is not reproducible with my example.

0 Kudos
Reply