X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Ftest%2Fll_call.c;h=b6969a87fb2e06a8431af191fc5bc634c6d1e710;hb=3c6b9f272fd0d2b2c48a1e34084411c179d08105;hp=1cf109d56dc6a12d0a8cb687390e61620973e611;hpb=e4691fe2e5046a9b2ae912e23e92ddcdcd2bb6e9;p=libfirm diff --git a/ir/be/test/ll_call.c b/ir/be/test/ll_call.c index 1cf109d56..b6969a87f 100644 --- a/ir/be/test/ll_call.c +++ b/ir/be/test/ll_call.c @@ -1,24 +1,25 @@ +#include + long long fac(long long n) { - if (n==1) return n; - return (n*fac(n-1)); -} + if(n < 1) + return 1; + return (n*fac(n-1)); +} int main(void) { - /* - int i = 0; - int j = 0; - int k = 0; - int l = 0; - int summe = 0; - printf("ello"); - for( k = 0; k<100;k++) - for( l = 0; l<100;l++) - for( j = 0; j<100;j++) - for (i= 0; i<100; i++) - summe++; - */ - printf("\n%lld\n",fac(50)); + printf("Result:%lld (should be 3628800)\n",fac(10)); + printf("Result:%lld (should be 39916800)\n",fac(11)); + printf("Result:%lld (should be 479001600)\n",fac(12)); + printf("Result:%lld (should be 6227020800)\n",fac(13)); + printf("Result:%lld (should be 87178291200)\n",fac(14)); + printf("Result:%lld (should be 1307674368000)\n",fac(15)); + printf("Result:%lld (should be 20922789888000)\n",fac(16)); + printf("Result:%lld (should be 355687428096000)\n",fac(17)); + printf("Result:%lld (should be 6402373705728000)\n",fac(18)); + printf("Result:%lld (should be 121645100408832000)\n",fac(19)); + printf("Result:%lld (should be 2432902008176640000)\n",fac(20)); + return fac(20) != 2432902008176640000ULL; }