1 /* { dg-options "-ffast-math" } */
2 
3 /* Fast maths allows tail recursion to be turned into iteration.  */
4 
5 double
foo(int n,double f)6 foo (int n, double f)
7 {
8   if (n == 0)
9     return f;
10   else
11     return f + foo (n - 1, f);
12 }
13 
14 double
bar(int n,double f)15 bar (int n, double f)
16 {
17   if (n == 0)
18     return f;
19   else
20     return f * bar (n - 1, f);
21 }
22