1/* PR rtl-optimization/31691 */ 2/* Origin: Chi-Hua Chen <stephaniechc-gccbug@yahoo.com> */ 3 4extern void abort (void); 5 6static int get_kind(int) __attribute__ ((noinline)); 7 8static int get_kind(int v) 9{ 10 volatile int k = v; 11 return k; 12} 13 14static int some_call(void) __attribute__ ((noinline)); 15 16static int some_call(void) 17{ 18 return 0; 19} 20 21static 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 37int main(void) 38{ 39 example(10); 40 return 0; 41} 42