/* PR rtl-optimization/79032 */
/* Reported by Daniel Cederman <cederman@gaisler.com> */

extern void abort(void);

struct S {
    short a;
    long long b;
    short c;
    char d;
    unsigned short e;
    long *f;
};

static long foo(struct S *s) __attribute__((noclone, noinline));

static long foo(struct S *s) {
    long a = 1;
    a /= s->e;
    s->f[a]--;
    return a;
}

int main(void) {
    long val = 1;
    struct S s = {0, 0, 0, 0, 2, &val};
    val = foo(&s);
    if (val != 0)
        abort();
    return 0;
}
