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

     1  /* PR middle-end/51323 */
     2  
     3  extern void abort (void);
     4  struct S { int a, b, c; };
     5  int v;
     6  
     7  __attribute__((noinline, noclone)) void
     8  foo (int x, int y, int z)
     9  {
    10    if (x != v || y != 0 || z != 9)
    11      abort ();
    12  }
    13  
    14  static inline int
    15  baz (const struct S *p)
    16  {
    17    return p->b;
    18  }
    19  
    20  __attribute__((noinline, noclone)) void
    21  bar (int x, struct S y)
    22  {
    23    foo (baz (&y), 0, x);
    24  }
    25  
    26  int
    27  main ()
    28  {
    29    struct S s;
    30    v = 3; s.a = v - 1; s.b = v; s.c = v + 1;
    31    bar (9, s);
    32    v = 17; s.a = v - 1; s.b = v; s.c = v + 1;
    33    bar (9, s);
    34    return 0;
    35  }