1 /* { dg-do run } */
2 /* { dg-options "-O0 -mtune=i386 -fomit-frame-pointer" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
3 
abrt(const char * fi,const char * fu)4 __attribute__((noreturn,noinline)) void abrt (const char *fi, const char *fu)
5 {
6   __builtin_abort ();
7 }
8 
f(int k)9 __attribute__((noinline)) int f (int k)
10 {
11   return k;
12 }
13 
g(int t,int k)14 __attribute__((noinline)) int g (int t, int k)
15 {
16   int b;
17 
18   switch (t)
19     {
20     case 0:
21       abrt (__FILE__, __FUNCTION__);
22 
23     case 1:
24       b = f (k);
25       break;
26 
27     case 2:
28       b = f (k);
29       break;
30 
31     case 3:
32       b = f (k);
33       break;
34 
35     case 4:
36       b = f (k);
37       break;
38 
39     default:
40       abrt (__FILE__, __FUNCTION__);
41     }
42 
43   return b;
44 }
45 
main(void)46 int main (void)
47 {
48   if (g (3, 1337) != 1337)
49       abrt (__FILE__, __FUNCTION__);
50   return 0;
51 }
52