modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20040214-2.c (about)

     1  /* http://gcc.gnu.org/ml/gcc-patches/2004-02/msg01307.html */
     2  
     3  typedef struct xdef xdef;
     4  struct xdef
     5  {
     6    char xtyp;
     7    xdef *next;
     8    int y;
     9  };
    10  
    11  extern void b ();
    12  extern void *foo (void *bar);
    13  extern void *foo2 (void *bar1, void *bar2);
    14  extern void *qwe;
    15  
    16  static void
    17  c (xdef * xp)
    18  {
    19    b (xp);
    20  }
    21  static void
    22  a (xdef ** xpp)
    23  {
    24    xdef *xp;
    25    xp = *xpp;
    26  
    27    foo (xp);
    28    xp = foo2 (xp, qwe);
    29    b (xp->next);
    30    foo (xp);
    31    if (xp->y)
    32    {
    33      foo (xp);
    34      if (xp)
    35      {
    36        xdef *p = foo2 (xp, qwe);
    37        foo2 (xp, p);
    38        xp = foo (p);
    39      }
    40      else
    41      {
    42        foo2 (foo(*xpp), *xpp);
    43      }
    44    }
    45    *xpp = foo2 (xpp, qwe);
    46  }
    47  
    48  void
    49  b (xdef ** xpp)
    50  {
    51    xdef *xp = *xpp;
    52    if (!xp)
    53      return;
    54    if (xp->xtyp == 0)
    55      a (xpp);
    56    c (xp);
    57  }