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

     1  /* { dg-require-effective-target indirect_jumps } */
     2  /* { dg-require-effective-target label_values } */
     3  
     4  typedef unsigned long Eterm;
     5  process_main (void)
     6  {
     7    register Eterm x0;
     8    register Eterm *reg = ((void *) 0);
     9    register Eterm *I = ((void *) 0);
    10    static void *opcodes[] = {
    11        &&lb_allocate_heap_zero_III,
    12        &&lb_allocate_init_tIy, &&lb_allocate_zero_tt
    13    };
    14  lb_allocate_heap_III:{
    15      Eterm *next;
    16      goto *(next);
    17    }
    18  lb_allocate_heap_zero_III:{
    19    }
    20  lb_allocate_init_tIy:{
    21    }
    22  lb_allocate_zero_tt:{
    23      Eterm *next;
    24      {
    25        Eterm *tmp_ptr = ((Eterm *) (((x0)) - 0x1));
    26        (*(Eterm *) (((unsigned char *) reg) + (I[(0) + 1]))) = ((tmp_ptr)[0]);
    27        x0 = ((tmp_ptr)[1]);
    28      }
    29      goto *(next);
    30    }
    31  }