https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100555
Bug ID: 100555
Summary: [OPENMP] ICE in target parallel construct with
if-clause
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
The test case is,
program test
use omp_lib
integer :: i
i = 1
!!$omp target parallel if(target: i > 0) if(parallel: i > 0) !ICE
!!$omp target parallel if(target: i > 0)
!!$omp target parallel if(parallel: i > 0) !ICE
!!$omp target parallel if(i > 0) !ICE
!$omp target parallel
print *, "thread id = ", omp_get_thread_num()
!$omp end target parallel
end program
It seems that when exist if-clause applies to parallel directive, there is an
ICE.
If change target parallel construct to target parallel loop construct, there is
no ICE.