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

     1  /* Verify that structure return doesn't invoke memcpy on 
     2     overlapping objects.  */
     3  
     4  extern void abort (void);
     5  
     6  struct S {
     7    char stuff[1024];
     8  };
     9  
    10  union U {
    11    struct {
    12      int space;
    13      struct S s;
    14    } a;
    15    struct {
    16      struct S s;
    17      int space;
    18    } b;
    19  };
    20  
    21  struct S f(struct S *);
    22  void g(union U *);
    23  
    24  void main_test(void)
    25  {
    26    union U u;
    27    u.b.s = f(&u.a.s);
    28    u.a.s = f(&u.b.s);
    29    g(&u);
    30  }