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

            Bug ID: 91010
           Summary: ICE: Segmentation fault (in location_wrapper_p)
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, openmp
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-pc-linux-gnu

g++-10.0.0-alpha20190623 snapshot (r272608) ICEs when compiling the following
testcase reduced from gcc/testsuite/g++.dg/vect/simd-5.cc at any optimization
level except -Og and w/ -fopenmp -fno-tree-forwprop:

struct ug {
  ug &
  operator= (const ug &je)
  {
    gj = je.gj;
    return *this;
  }

  int gj;
};

#pragma omp declare reduction (+ : ug : omp_out.gj += omp_in.gj)
void
i0 (ug &hf)
{
  int mv;

#pragma omp simd reduction (inscan, + : hf)
  for (mv = 0; mv < 2; ++mv)
    {
      ;
#pragma omp scan inclusive (hf)
      ;
    }
}

% x86_64-pc-linux-gnu-g++-10.0.0-alpha20190623 -O1 -fopenmp -fno-tree-forwprop
-c arijcgdh.cc
during GIMPLE pass: vect
arijcgdh.cc: In function 'void i0(ug&)':
arijcgdh.cc:14:1: internal compiler error: Segmentation fault
   14 | i0 (ug &hf)
      | ^~
0xf6b3e8 crash_signal
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/toplev.c:326
0xc72515 location_wrapper_p(tree_node const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree.h:3845
0xc72515 tree_strip_any_location_wrapper(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree.h:3857
0xc72515 operand_equal_p(tree_node const*, tree_node const*, unsigned int)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/fold-const.c:2967
0xc746b1 operand_equal_p(tree_node const*, tree_node const*, unsigned int)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/fold-const.c:2950
0x118e6e7 scan_operand_equal_p
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-stmts.c:6351
0x11af386 check_scan_store
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-stmts.c:6734
0x11af386 vectorizable_store
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-stmts.c:7315
0x11b0115 vect_analyze_stmt(_stmt_vec_info*, bool*, _slp_tree*, _slp_instance*,
vec<stmt_info_for_cost, va_heap, vl_ptr>*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-stmts.c:10566
0x11c9182 vect_analyze_loop_operations
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-loop.c:1631
0x11c9182 vect_analyze_loop_2
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-loop.c:2077
0x11c9182 vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vect-loop.c:2380
0x11e39e5 try_vectorize_loop_1
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vectorizer.c:886
0x11e468f vectorize_loops()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree-vectorizer.c:1114

Reply via email to