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