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