| /* { dg-do run } */ | |
| /* { dg-options -O2 } */ | |
| void abort (void); | |
| void g(int); | |
| void f(int l) | |
| { | |
| unsigned i; | |
| for (i = 0; i < l; i++) | |
| { | |
| int y = i; | |
| /* VRP was wrongfully computing z's range to be [0, 0] instead | |
| of [-INF, 0]. */ | |
| int z = y*-32; | |
| g(z); | |
| } | |
| } | |
| void g(int i) | |
| { | |
| static int x = 0; | |
| if (i == 0) | |
| x ++; | |
| if (x > 1) | |
| abort (); | |
| } | |
| int main(void) | |
| { | |
| f(3); | |
| return 0; | |
| } |