modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/930529-1.c (about)

     1  /* { dg-require-effective-target untyped_assembly } */
     2  
     3  struct r
     4  {
     5    int d1, d2;
     6  };
     7  
     8  struct km
     9  {
    10    int d;
    11  };
    12  
    13  struct f1
    14  {
    15    char *fn;
    16    char *fd;
    17    char *fs;
    18    char *ic;
    19    void (*ff) ();
    20  };
    21  
    22  int g ();
    23  
    24  int y;
    25  struct r *bs;
    26  int bv;
    27  
    28  void b ();
    29  char *w ();
    30  
    31  struct km **q;
    32  char **mns;
    33  int nm;
    34  struct f1 **z;
    35  
    36  f (char *km, char *h)
    37  {
    38    struct f1 *t;
    39    int map = midn(km, strlen(km));
    40    int V;
    41    int c;
    42    struct r r;
    43    struct f1 *cm;
    44  
    45    if (!g(&V, &cm, h, strlen(h)))
    46      {
    47        c = (cm - z[V]);
    48        goto L;
    49      }
    50  
    51    for (c = 0; c < nm; c++)
    52      if (!strcmp (h, mns[c]))
    53        {
    54  	V = -1;
    55  	goto L;
    56        }
    57  
    58    for (c = 0; c < y; c++)
    59      {
    60        if (!memcmp (&bs[c], &r, 8))
    61  	goto L;
    62      }
    63  
    64    h = w (&r);
    65    if (!bv)
    66      {
    67        bs = g (8);
    68        t = (struct f1 *)g (20);
    69      }
    70    else
    71      {
    72        bs = g (bs, y * 8);
    73        z[bv] = cr (z[bv], (1 + y) * 20);
    74        t = &z[bv][y - 1];
    75      }
    76    bs[y - 1] = r;
    77    t->fs[0] = sp (y - 1);
    78    t->fs[1] = 0;
    79    t->ic = 0;
    80    t->fd = 0;
    81    t->fn = cs (h);
    82    t->ff = b;
    83   L:
    84    g (q[map], V, c);
    85  }