https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58915
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Known to work| |6.1.0, 7.1.0 Target Milestone|--- |6.0 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- hmm, curoll has Loop 1 iterates at most 4 times. int g(void); void h(void); int f(unsigned int i) { if (i > 0){ h(); if (i < 4) { do { // if (i > 100) g(); --i; } while (i > 0); } } } r0-125361-ga895a2b8 started to export the range for i inside the loop. And then r0-126335-g7190fdc1906cfdfee started to use the range information for tree-ssa-loop-niter.c. Without the VRP, GCC 6.1.0 have this fixed by r6-5389. So closed as fully fixed for GCC 6.1.0.