Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
20 Views

ICE C0000005 caused by implied loop in WRITE under some conditions

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
Highlighted
Black Belt Retired Employee
20 Views

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

0 Kudos
Highlighted
New Contributor I
20 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
Highlighted
Black Belt
20 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
Highlighted
New Contributor I
20 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
Highlighted
Employee
20 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