1 /* PR debug/45259 */
2 /* { dg-do compile } */
3 /* { dg-options "-g -O2 -w -fpic" { target fpic } } */
4 /* { dg-options "-g -O2 -w" { target { ! fpic } } } */
5 
6 struct S { void (*bar) (long); };
7 struct T { struct S *t; };
8 int w;
9 extern int baz (int);
10 
11 void
foo(int x,int u,char * z)12 foo (int x, int u, char *z)
13 {
14   struct T *v;
15   static void *y[256] = { &&l1, &&l2 };
16   for (;;)
17     switch (x)
18       {
19       l2:
20 	x = 9;
21       case 9:
22 	goto *y[*z++];
23       case 10:
24       case 27:
25       case 54:
26       case 99:
27       case 100:
28       case 120:
29       case 122:
30       case 131:
31       case 132:
32       case 134:
33       case 141:
34       case 142:
35 	v->t->bar (u);
36 	v->t->bar (u);
37       case 143:
38 	continue;
39       l1:
40       default:
41 	baz (w);
42       }
43 }
44