https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117222
--- Comment #4 from Sam James <sjames at gcc dot gnu.org> --- With prange, evrp has: ``` [-Global Exported: _17 = [irange] long int [-INF, -1][1, +INF]-] ``` and then vrp1 has: ``` [...] {+Global Exported: _69 = [prange] int * [1, +INF]+} Global Exported: _68 = [irange] long unsigned int [0, 0] {+Global Exported: _67 = [irange] long int [0, 0]+} Global Exported: _82 = [irange] long unsigned int [0, 9223372036854775804] MASK 0x7fffffffffffffff VALUE 0x0 int main () { @@ -91,7 +93,6 @@ int main () int * _44; int * _53; int * _61; [- long int _67;-] int * _69; long unsigned int _82; long unsigned int _95; @@ -101,7 +102,6 @@ int main () int * _130; long unsigned int _149; long unsigned int _156; [- long unsigned int _161;-] [...] ```` Then forwprop3 ends up keeping bbs 9/10/11/15/12 and it all goes wrong from there.