gnu_label_addr_runtime_table.c (271B)
1 /* GNU labels-as-values: a non-static (automatic) array initialized with label 2 * addresses, selected at runtime. 5 & 1 == 1 -> `odd` -> 20. */ 3 int test_main(void) { 4 void* tab[] = {&&even, &&odd}; 5 int n = 5; 6 goto* tab[n & 1]; 7 even: 8 return 10; 9 odd: 10 return 20; 11 }