1 /* { dg-do run } */
2 /* { dg-options "-mapcs-frame -O -foptimize-sibling-calls -ffunction-sections" } */
3 
4 extern void abort (void);
5 
6 static __attribute__((noclone, noinline, long_call))
foo(int a,int b,int c,int d,double i)7 int foo (int a, int b, int c, int d, double i)
8 {
9   return a;
10 }
11 
12 static __attribute__((noclone, noinline))
baz(double i)13 double baz (double i)
14 {
15   return i;
16 }
17 
18 static __attribute__((noclone, noinline))
bar(int a,int b,int c,int d,double i,double j)19 int bar (int a, int b, int c, int d, double i, double j)
20 {
21   double l = baz (i) * j;
22   return foo (a, b, c, d, l);
23 }
24 
25 int
main(void)26 main (void)
27 {
28   if (bar (0, 0, 0, 0, 0.0, 0.0) != 0)
29     abort ();
30 
31   return 0;
32 }
33