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)9 foo (int arg)
10 {
11   if (arg != 116)
12     abort();
13   return arg + 1;
14 }
15 
16 inline double
bar(int arg)17 bar (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)25 main (int argc, char **argv)
26 {
27   if (bar (116) != 117.0)
28     abort ();
29 
30   return 0;
31 }
32