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

     1  extern void abort(void);
     2  
     3  struct foo {
     4    int rank;
     5    char *name;
     6  };
     7  
     8  struct mem {
     9    struct foo *x[4];
    10  };
    11  
    12  void __attribute__((noinline)) bar(struct foo **f)
    13  {
    14    *f = __builtin_malloc(sizeof(struct foo));
    15  }
    16  struct foo * __attribute__((noinline, noclone)) foo(int rank)
    17  {
    18    void *x = __builtin_malloc(sizeof(struct mem));
    19    struct mem *as = x;
    20    struct foo **upper = &as->x[rank * 8 - 5];
    21    *upper = 0;
    22    bar(upper);
    23    return *upper;
    24  }
    25  
    26  int main()
    27  {
    28    if (foo(1) == 0)
    29      abort ();
    30    return 0;
    31  }