1 #ifndef NO_TRAMPOLINES 2 extern void abort (void); 3 x(int a,int b)4int x(int a, int b) 5 { 6 __label__ xlab; 7 __label__ xlab2; 8 9 void y(int b) 10 { 11 switch (b) 12 { 13 case 1: goto xlab; 14 case 2: goto xlab; 15 } 16 } 17 18 a = a + 2; 19 y (b); 20 21 xlab: 22 return a; 23 24 xlab2: 25 a++; 26 return a; 27 28 } 29 main()30int main () 31 { 32 int i, j; 33 34 for (j = 1; j <= 2; ++j) 35 for (i = 1; i <= 2; ++i) 36 { 37 int a = x (j, i); 38 if (a != 2 + j) 39 abort (); 40 } 41 42 return 0; 43 } 44 #else main()45int main() { return 0; } 46 #endif 47