1 /* PR tree-optimization/20076 */ 2 /* { dg-options "-O2 -Wmissing-noreturn" } */ 3 /* { dg-options "-O2 -mno-mmx" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ 4 /* { dg-do run } */ 5 6 extern void abort (void); 7 8 double foo(int arg)9foo (int arg) 10 { 11 if (arg != 116) 12 abort(); 13 return arg + 1; 14 } 15 16 inline double bar(int arg)17bar (int arg) 18 { 19 foo (arg); 20 __builtin_return (__builtin_apply ((void (*) ()) foo, 21 __builtin_apply_args (), 16)); 22 } 23 24 int main(int argc,char ** argv)25main (int argc, char **argv) 26 { 27 if (bar (116) != 117.0) 28 abort (); 29 30 return 0; 31 } 32