int f(int *); int verbosity; int *arr; int last;void g () { int i; if (last < 4000) { if (verbosity >= 4) f(&verbosity); for (i = 0; i <= last; i++) arr[i] = i; } }
If last != 0, arr+i cannot point to last for any i, as last is not part of an array with two or more elements. Does GCC perform loop versioning for cases like this? Segher