1 /* { dg-require-effective-target trampolines } */ 2 3 /* Test that the GP gets properly restored, either by the nonlocal 4 receiver or the nested function. */ 5 6 typedef __SIZE_TYPE__ size_t; 7 extern void abort (void); 8 extern void exit (int); 9 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); 10 main()11int main () 12 { 13 __label__ nonlocal; 14 int compare (const void *a, const void *b) 15 { 16 goto nonlocal; 17 } 18 19 char array[3]; 20 qsort (array, 3, 1, compare); 21 abort (); 22 23 nonlocal: 24 exit (0); 25 } 26