This is using the latest ifort 17.0.2 (same problem with 17.0.1; older versions not tested): when trying the examples for the OpenMP 4.5 doacross parallelization feature, I found that the compiler produces an ICE for https://github.com/OpenMP/Examples/blob/master/sources/Example_doacross....
% cat doacross.2.f90
subroutine work( N, M, A, B, C )
integer :: N, M, i, j
real, dimension(M,N) :: A, B, C
real, external :: foo, bar, baz
!$omp do ordered(2)
do j=2, N
do i=2, M
A(i,j) = foo(i, j)
!$omp ordered depend(sink: j-1,i) depend(sink: j,i-1)
B(i,j) = bar(A(i,j), B(i-1,j), B(i,j-1))
!$omp ordered depend(source)
C(i,j) = baz(B(i,j))
end do
end do
end subroutine
% ifort -qopenmp doacross.2.f90
doacross.2.f90: catastrophic error: **Internal compiler error: floating point exception signal raised** 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 2.f90 (code 1)
It would be great if this could be fixed.
thanks,
Kay