https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107937
Bug ID: 107937 Summary: ice in find_var_cmp_const, at gimple-predicate-analysis.cc:257 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- This reduced C code: double getk_intersect_line_with_ycylinder_r, getk_intersect_line_with_ycylinder_a; getk_intersect_line_with_ycylinder_i; getk_intersect_line_with_ycylinder(double *k2) { if (getk_intersect_line_with_ycylinder_r < 0.) return sqrt(getk_intersect_line_with_ycylinder_r); *k2 = 0 / getk_intersect_line_with_ycylinder_a; { double k2; for (; getk_intersect_line_with_ycylinder_i; getk_intersect_line_with_ycylinder_i++) getk_intersect_line_with_ycylinder(&k2); vecscale(k2); } } when compiled by recent gcc trunk and compiler flags -O3 -Wall, does this: during GIMPLE pass: uninit bug865.c:4:1: internal compiler error: in find_var_cmp_const, at gimple-predicate-analysis.cc:257 4 | getk_intersect_line_with_ycylinder(double *k2) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x1b3ad6c find_var_cmp_const(vec<vec<pred_info, va_heap, vl_ptr>, va_heap, vl_ptr>, gphi*, gimple**, tree_node**) ../../trunk.d1/gcc/gimple-predicate-analysis.cc:257 0x1b3ad6c uninit_analysis::overlap(gphi*, unsigned int, hash_set<gphi*, false, default_hash_traits<gphi*> >*, predicate const&) ../../trunk.d1/gcc/gimple-predicate-analysis.cc:648 I'll have a go at finding a git range for the problem.