1/* Test that the GP gets properly restored, either by the nonlocal
2   receiver or the nested function.  */
3
4#ifndef NO_TRAMPOLINES
5
6typedef __SIZE_TYPE__ size_t;
7extern void abort (void);
8extern void exit (int);
9extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
10
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
27#else
28int main() { return 0; }
29#endif
30