https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100965

            Bug ID: 100965
           Summary: [OpenMP] ICE: Error: incorrect sharing of tree nodes
           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: ---

Found when working on 'defaultmap' (related: PR90742, PR92568).

The following gives an ICE:

SAVE_EXPR <.strxa.6>
#pragma omp target num_teams(1) thread_limit(0) map(tofrom:*strxa [len:
SAVE_EXPR <.strxa.6>]) map(alloc:strxa [pointer assign, bias: 0]) map(to:.strxa
[len: 8]) [child fn: MAIN__._omp_fn.1 (.omp_data_arr.7, .omp_data_sizes.8,
.omp_data_kinds.9)]
during GIMPLE pass: cfg

foo.f90:8:14: internal compiler error: verify_gimple failed

0xf8b4e1 verify_gimple_in_cfg(function*, bool)
        ../../repos/gcc/gcc/tree-cfg.c:5509

but only when used in two separate target regions:

implicit none
  character(len=:), allocatable :: strXa
  !$omp target
    strXa = ""
  !$omp end target

  !$omp target
    strXa = ""
  !$omp end target
end

Reply via email to