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

ICE C0000005 caused by implied loop in WRITE under some conditions

Mike_M_1
New Contributor I
571 Views

Under some conditions, use of an implied loop in a WRITE statement causes a C0000005 internal compiler error, with no other information provided.  This is for the 17.0.2.187 [IA-32] Visual Fortran compiler.  This problem does not occur with the 11.1 version of the compiler.  If you are unaware of this problem, let me know and I will send an example.

Mike McCurdy

Hammajang Software

0 Kudos
5 Replies
Steve_Lionel
Honored Contributor III
571 Views

Even if Intel was aware of a problem with this symptom, your case might be different. Please provide an example.

0 Kudos
Mike_M_1
New Contributor I
571 Views

Attached are two files, a minimal subroutine that demonstrates the problem (with two effective work-arounds commented out) and the build log that actually shows the error.  The module containing the subroutine has been inserted into a project to allow compilation, but is not called, nor is the module USEd in any other subroutines of the project.

FORTRAN command line is:

/nologo /debug:full /Od /extend_source:132 /warn:truncated_source /warn:interfaces /real_size:64 /module:"Debug\\" /object:"Debug\\" /Fd"Debug\vc120.pdb" /list:"Debug\COGNIT_N.lst" /traceback /check:bounds /libs:static /threads /dbglibs /c

Additional options:

/show:include

0 Kudos
mecej4
Honored Contributor III
571 Views

Please provide the sources for building the modules 'FILES' and 'UTILS' that are USEd in your subroutine. Without those, the compiler aborts when it sees the USE lines in PRN_EXP.for.

 

0 Kudos
Mike_M_1
New Contributor I
571 Views

Rather than send the USE files, one of which is quite large, here are two new versions of the files previously sent, which demonstrate the described problem.

0 Kudos
Kevin_D_Intel
Employee
571 Views

Thank you for the convenient reproducer. The internal error occurs related to compiling with Check Bounds enabled (/check:bounds). You could avoid the source code change work around by temporarily disabling bounds checking (under the IDE properties: Fortran > Run-time > Check Array and String Bounds). You can disable this option on a per source file basis if you wish to keep it enabled for other source files.

I reported the issue to Development.

(Internal tracking id: DPD200419792)

0 Kudos
Reply