1 /* PR rtl-optimization/31691 */
2 /* Origin: Chi-Hua Chen <stephaniechc-gccbug@yahoo.com> */
3 
4 extern void abort (void);
5 
6 static int get_kind(int) __attribute__ ((noinline));
7 
get_kind(int v)8 static int get_kind(int v)
9 {
10   volatile int k = v;
11   return k;
12 }
13 
14 static int some_call(void) __attribute__ ((noinline));
15 
some_call(void)16 static int some_call(void)
17 {
18   return 0;
19 }
20 
example(int arg)21 static void example (int arg)
22 {
23   int tmp, kind = get_kind (arg);
24 
25   if (kind == 9 || kind == 10 || kind == 5)
26     {
27       if (some_call() == 0)
28         {
29           if (kind == 9 || kind == 10)
30             tmp = arg;
31           else
32             abort();
33         }
34     }
35 }
36 
main(void)37 int main(void)
38 {
39   example(10);
40   return 0;
41 }
42