/* { dg-options "-fgnu89-inline -Wno-pointer-to-int-cast" } */

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

int a[2];

__inline__ void f(int b, int o) {
    unsigned int i;
    int *p;
    for (p = &a[b], i = b; --i < ~0;)
        *--p = i * 3 + o;
}

void g(int b) {
    f(b, (int)a);
}

int main() {
    a[0] = a[1] = 0;
    g(2);
    if (a[0] != (int)a || a[1] != (int)a + 3)
        abort();
    exit(0);
}
