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

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
Created attachment 41888
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41888&action=edit
Reduced test-case

Adding reduced test-case (it's hard to reduce more). There's ompexp dump:

bool satyr::dc(auto:1, bl, bl, cz) [with cz =
satyr::execute_with_cancel(satyr::n_array_expression<da, satyr::dg, Evaluator,
auto:4>) [with long unsigned int da = 2; Evaluator =
satyr::n_array_evaluator<double, 2>; auto:4 = ce]::<lambda()>; auto:1 =
satyr::n_array_expression<2, satyr::dg, satyr::n_array_evaluator<double, 2>,
ce>] (struct n_array_expression D.3331, bl dd, bl de, struct __lambda1 D.3334)
{
  bl i;
  long int de.1;
  long int dd.0;
  bl i;
  bool D.3383;

  <bb 2> [0.00%] [count: INV]:
  dd.0 = dd;
  de.1 = de;
  i = dd.0;
  i = dd.0;
  goto <bb 9>; [INV] [count: INV]

  <bb 3> [0.00%] [count: INV]:
  D.3383 = 0;
  goto <bb 8>; [INV] [count: INV]

  <bb 9> [0.00%] [count: INV]:
  if (i < de.1)
    goto <bb 3>; [87.50%] [count: INV]
  else
    goto <bb 4>; [12.50%] [count: INV]

  <bb 4> [0.00%] [count: INV]:
  if (i == de.1)
    goto <bb 5>; [INV] [count: INV]
  else
    goto <bb 6>; [INV] [count: INV]

  <bb 5> [0.00%] [count: INV]:
  i = i;

  <bb 6> [0.00%] [count: INV]:

  <bb 7> [0.00%] [count: INV]:
  D.3383 = 1;

  <bb 8> [0.00%] [count: INV]:
<L2>:
  return D.3383;

}

g++ pr81052.cpp  -std=c++1z  -fopenmp-simd -fconcepts -fdump-tree-ompexp
pr81052.cpp: In function ‘bool satyr::dc(auto:1, bl, bl, cz) [with cz =
satyr::execute_with_cancel(satyr::n_array_expression<da, satyr::dg, Evaluator,
auto:4>) [with long unsigned int da = 2; Evaluator =
satyr::n_array_evaluator<double, 2>; auto:4 = ce]::<lambda()>; auto:1 =
satyr::n_array_expression<2, satyr::dg, satyr::n_array_evaluator<double, 2>,
ce>]’:
pr81052.cpp:78:30: error: dominator of 8 should be 9, not 2
 template < db< 1 > cz > bool dc(bi, bl dd, bl de, cz) {
                              ^~
during GIMPLE pass: ompexp
dump file: pr81052.cpp.012t.ompexp
pr81052.cpp:78:30: internal compiler error: in verify_dominators, at
dominance.c:1184
0x9c7378 verify_dominators(cdi_direction)
        ../../gcc/dominance.c:1184
0xdee449 checking_verify_dominators
        ../../gcc/dominance.h:76
0xdee449 cleanup_tree_cfg_noloop
        ../../gcc/tree-cfgcleanup.c:781
0xdee449 cleanup_tree_cfg()
        ../../gcc/tree-cfgcleanup.c:899
0xc75c7c execute_expand_omp
        ../../gcc/omp-expand.c:8134

Reply via email to