typedef struct __attribute__((__may_alias__)) {
    short x;
} test;

int f() {
    int a = 10;
    test *p = (test *)&a;
    p->x = 1;
    return a;
}

int main() {
    if (f() == 10)
        __builtin_abort();
    return 0;
}
