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: xiao....@compiler-dev.com
  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.

Reply via email to