https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105242
Bug ID: 105242
Summary: [OpenMP] ICE with EXIT in collapsed loop: in
gfc_trans_exit, at fortran/trans-stmt.cc:6147
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, openmp
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
The following code (reduced code from a real-world project) gives an ICE but
compiles with other vendors' compilers. It fails with GCC 10, 11 and trunk/12
with:
8 | if (kk == 7) exit
| 1
internal compiler error: in gfc_trans_exit, at fortran/trans-stmt.cc:6147
0x69734b gfc_trans_exit(gfc_code*)
../../repos/gcc/gcc/fortran/trans-stmt.cc:6147
0xa17360 trans_code
../../repos/gcc/gcc/fortran/trans.cc:1947
0xa9e4b5 gfc_trans_if_1
../../repos/gcc/gcc/fortran/trans-stmt.cc:1484
0xaa84cf gfc_trans_if(gfc_code*)
../../repos/gcc/gcc/fortran/trans-stmt.cc:1516
0xa17563 trans_code
../../repos/gcc/gcc/fortran/trans.cc:2004
0xa8ad58 gfc_trans_omp_code
../../repos/gcc/gcc/fortran/trans-openmp.cc:4399
0xa9a6aa gfc_trans_omp_do
../../repos/gcc/gcc/fortran/trans-openmp.cc:5381
!$omp target parallel do simd collapse(3)
do ii = i1, i2
do jj = j1, j2
do kk = k1, k2
if (kk > 5) then
k = 0
end if
if (kk == 7) exit
end do
end do
end do
!$omp end target parallel do simd
end