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