1 #define ASSERT(X) if (!(X)) abort ();
2 #define NOCHK __attribute__ ((no_instrument_function))
4 int entry_calls, exit_calls;
5 void (*last_fn_entered)();
6 void (*last_fn_exited)();
12 ASSERT (last_fn_entered == foo);
17 ASSERT (entry_calls == 1 && exit_calls == 0);
18 ASSERT (last_fn_entered == foo2);
20 ASSERT (entry_calls == 2 && exit_calls == 1);
21 ASSERT (last_fn_entered == foo);
22 ASSERT (last_fn_exited == foo);
25 void nfoo (void) NOCHK;
28 ASSERT (entry_calls == 2 && exit_calls == 2);
29 ASSERT (last_fn_entered == foo);
30 ASSERT (last_fn_exited == foo2);
32 ASSERT (entry_calls == 3 && exit_calls == 3);
33 ASSERT (last_fn_entered == foo);
34 ASSERT (last_fn_exited == foo);
39 ASSERT (entry_calls == 0 && exit_calls == 0);
43 ASSERT (entry_calls == 2 && exit_calls == 2);
44 ASSERT (last_fn_entered == foo);
45 ASSERT (last_fn_exited == foo2);
49 ASSERT (entry_calls == 3 && exit_calls == 3);
50 ASSERT (last_fn_entered == foo);
55 void __cyg_profile_func_enter (void (*fn)(), void (*parent)()) NOCHK;
56 void __cyg_profile_func_exit (void (*fn)(), void (*parent)()) NOCHK;
58 void __cyg_profile_func_enter (void (*fn)(), void (*parent)())
63 void __cyg_profile_func_exit (void (*fn)(), void (*parent)())