/* { 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); }