https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83177
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ienkovich at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Seems chkp_get_bounds_by_definition is called multiple times for the same stmt and we end up with: a_24(ab) = a_2(ab) + 18446744073709551612; __bound_tmp.1_39 = __bound_tmp.0_35(ab); __bound_tmp.0_40(ab) = __bound_tmp.1_39; __bound_tmp.1_37 = __bound_tmp.0_35(ab); __bound_tmp.0_38 = __bound_tmp.1_37; where the first pair of __bound_tmp assignments comes from the second invocation and the second pair from the first one. That is of course invalid, as it has overlapping ranges for (ab) __bound_tmp.0. Not sure what would be the best fix, maybe if we need bounds across some abnormal edge create a new SSA_NAME for that and assign it near the bottom of the bb that computes that bound. Anyway, not working on this.