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

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