1 /* { dg-require-effective-target indirect_jumps } */ 2 /* { dg-require-effective-target label_values } */ 3 _IO_vfprintf_internal(char * f)4void _IO_vfprintf_internal ( char *f ) 5 { 6 static const void *const step0_jumps[] = { &&do_form_unknown, &&do_flag_plus, &&do_form_float }; 7 const void * ptr = step0_jumps[0]; 8 do { 9 char spec; 10 spec = (*++f); 11 goto *ptr; 12 do_flag_plus: 13 read_int (&f); 14 do_number: 15 _itoa_word (spec); 16 do_form_float: 17 if (ptr != ((void *)0)) 18 { 19 spec = 'x'; 20 goto do_number; 21 } 22 if (spec != 'S') 23 __strnlen (); 24 return; 25 do_form_unknown:; 26 } 27 while (*f != '\0'); 28 } 29 30