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

Internal Compiler Error

Marc_D_1
Beginner
678 Views

I just upgraded to Intel Fortran 16.0, and some code that compiled fine in 15 is now giving me an Internal Compiler Error (C0000005).  I've reduced the example to the 20 or so lines below.  The error is only reported when I use the "release" settings; the compile succeeds if I use the "debug" settings.  The compile also works if I comment out the two OpenMP lines.  The compiler command line includes:

/nologo /debug:full /MP /O3 /assume:buffered_io /fpp /Qopenmp /warn:declarations /warn:unused /warn:truncated_source /warn:uncalled /warn:interfaces /module:"x64\Release\Intermediate\\" /object:"x64\Release\Intermediate\\" /Fd"x64\Release\Intermediate\vc110.pdb" /traceback /check:none /libs:static /threads /c

Any help would be very much appreciated!!

 

module test_module
    integer n_example
end module test_module


subroutine test_subroutine(xsum)
use test_module
implicit none
real*8, intent(out) :: xsum(3)
integer cur_n

xsum = 0d0
n_example = 10

!$omp parallel do reduction(+:xsum)
do cur_n = 1, n_example
    xsum = xsum + 1d0
enddo
!$omp end parallel do 

return
end subroutine test_subroutine


 

0 Kudos
2 Replies
TimP
Honored Contributor III
678 Views

I confirm that the ICE comes in with combination of -Qopenmp  -O3 (and, with some other settings, even at -O2).

I'm not much of a fan of array reduction.  As you will see with -Qopt-report4, the compiler is wanting to unroll the operation of length 3 and so apparently generate code for 3 separate sums.

I note that -Qopenmp -Qvec- seems to be successfully in compiling without simd. 

0 Kudos
Steven_L_Intel1
Employee
678 Views

It seems to be the combination of /O3 and /debug that is the trigger for this - removing /debug or switching to /O2 avoids the ICE for this test case. It is unusual to have both /debug and /O3 enabled - is this deliberate?

Interestingly, I can't reproduce this in our recent builds - perhaps the bug was fixed already and the fix would appear in Update 2, planned for February.

0 Kudos
Reply