void abort(void);
void exit(int);

struct F {
    int i;
};

void f1(struct F *x, struct F *y) {
    int timeout = 0;
    for (; ((const struct F *)x)->i < y->i; x->i++)
        if (++timeout > 5)
            abort();
}

int main(void) {
    struct F x, y;
    x.i = 0;
    y.i = 1;
    f1(&x, &y);
    exit(0);
}
