modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/struct-aliasing-1.c (about)

     1  struct S { float f; };
     2  int __attribute__((noinline))
     3  foo (int *r, struct S *p)
     4  {
     5    int *q = (int *)&p->f;
     6    int i = *q;
     7    *r = 0;
     8    return i + *q;
     9  }
    10  extern void abort (void);
    11  int main()
    12  {
    13    int i = 1;
    14    if (foo (&i, (struct S *)&i) != 1)
    15      abort ();
    16    return (0);
    17  }