// { dg-do compile }
// { dg-options "-O2 -Warray-bounds" }
void f();
int c[3];
int result;
struct Vector {
    static int get(int i) {
        if (i >= 3)
            f();
        return c[i];
    }
};
void g()
{
    for (int i = 0; i < 3; ++i) {
        const int index = i % 3;
        result = Vector::get(index) + Vector::get(index);
    }
}