/* { dg-do run } */ /* { dg-options "-O1 -ftree-vrp" } */ /* PR tree-optimization/22230 The meet of the ranges in "i*i" was not computed correctly, leading gcc to believe that a was equal to 0 after the loop. */ extern void abort (void) __attribute__((noreturn)); int main (void) { long a, i; for (i = 0; i < 5; i++) a = i * i; if (a != 16) abort (); return 0; }