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