1 /* { dg-require-effective-target indirect_jumps } */
2 /* { dg-require-effective-target label_values } */
3 
4 typedef unsigned long Eterm;
process_main(void)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 }
32