updated for new optimization
[libfirm] / ir / be / test / tailrec.c
index 7e77df0..4bac479 100644 (file)
@@ -1,14 +1,11 @@
-static unsigned _fak(unsigned a, unsigned b)
-{
-  if (a == 0)
-    return b;
-
-  return _fak(a-1, a*b);
-}
+#include <stdio.h>
 
-static fak(unsigned a)
+static unsigned fak(unsigned n)
 {
-  return _fak(a, 1);
+  if (n == 0)
+    return 1;
+
+  return n * fak(n - 1);
 }
 
 
@@ -17,4 +14,6 @@ int main(int argc, char *argv[])
   int x = 4;
 
   printf("%d! = %d\n", x, fak(x));
+
+  return 0;
 }