modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/920501-3.c (about)

     1  int tab[9];
     2  execute(oip, ip)
     3       unsigned short *oip, *ip;
     4  {
     5  #ifndef NO_LABEL_VALUES
     6    int x = 0;
     7    int *xp = tab;
     8  base:
     9    x++;
    10    if (x == 4)
    11      {
    12        *xp = 0;
    13        return;
    14      }
    15    *xp++ = ip - oip;
    16    goto *(&&base + *ip++);
    17  #else
    18    tab[0] = 0;
    19    tab[1] = 1;
    20    tab[2] = 2;
    21    tab[3] = 0;
    22  #endif
    23  }
    24  
    25  main()
    26  {
    27    unsigned short ip[10];
    28    int i;
    29    for (i = 0; i < 10; i++)
    30      ip[i] = 0;
    31    execute(ip, ip);
    32    if (tab[0] != 0 || tab[1] != 1 || tab[2] != 2 || tab[3] != 0)
    33      abort();
    34    exit(0);
    35  }