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

test *p;

int g(int *a) {
    p = (test *)a;
}

int f() {
    int a;
    g(&a);
    a = 10;
    test s = {1};
    *p = s;
    return a;
}

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