5 /* Check that function wrapping works for a recursive function. */
7 /* This is needed to stop gcc4 turning 'fact' into a loop */
8 __attribute__((noinline
))
9 int mul ( int x
, int y
) { return x
* y
; }
13 if (n
== 0) return 1; else return mul(n
, fact(n
-1));
16 int I_WRAP_SONAME_FNNAME_ZU(NONE
,fact
) ( int n
)
20 VALGRIND_GET_ORIG_FN(fn
);
21 printf("in wrapper1-pre: fact(%d)\n", n
);
22 CALL_FN_W_W(r
, fn
, n
);
23 printf("in wrapper1-post: fact(%d) = %d\n", n
, r
);
32 printf("computing fact(5)\n");
34 printf("fact(5) = %d\n", r
);