1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
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; }