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

static int
test(int x) {
    union {
        int i;
        double d;
    } a;
    a.d = 0;
    a.i = 1;
    return x >> a.i;
}

int main(void) {
    if (test(5) != 2)
        abort();
    exit(0);
}
