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

            Bug ID: 127559
           Summary: [OpenMP]
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, openmp
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
  Target Milestone: ---

The following code - a reduced code of the src/lrn-omp, part of
https://github.com/ORNL/HeCBench  fails with

  g++ -fopenmp

as follows:


inp2.ii:6:33: error: incorrect sharing of tree nodes
    6 |     auto ker = [=] { get_omega; };
      |                                 ^
ker.__get_omega
#pragma omp target num_teams(-2) thread_limit(0) map(alloc:MEM[(char *)src_]
[len: 0]) map(firstprivate:src_ [pointer assign, bias: 0])
map(to:ker.__get_omega [len: 8]) map(struct:ker.__get_omega = get_omega [len:
1]) map(alloc:ker.__get_omega.__src_ [len: 8]) map(alloc:*_1 [len: 0])
map(attach_zero_length_array_section:ker.__get_omega.__src_ [bias: 0]) [child
fn: _Z14lrn_bwd_kernelv._omp_fn.0 ({.omp_data_arr.1, .omp_data_sizes.2,
.omp_data_kinds.3})]
during GIMPLE pass: cfg
inp2.ii:6:33: internal compiler error: verify_gimple failed
0x2e5b3df internal_error(char const*, ...)
        /home/tob/repos/gcc/gcc/diagnostic-global-context.cc:787
0x16e2250 verify_gimple_in_cfg(function*, bool, bool)
        /home/tob/repos/gcc/gcc/tree-cfg.cc:5642
0x153e08a execute_function_todo
        /home/tob/repos/gcc/gcc/passes.cc:2100
0x153e5e7 execute_todo
        /home/tob/repos/gcc/gcc/passes.cc:2152


-------- Reduced testcase ----------------

void lrn_bwd_kernel() {
  float *src_;
#pragma omp target
  {
    auto get_omega = [=] { src_; };
    auto ker = [=] { get_omega; };
  }
}

Reply via email to