Even after looking at this and preserving apparently intended
semantics, I don't see that those semantics are useful. Given
void a() { }
void noinline b() { a(); }
void c() { b(); }
is __cyg_profile_func_start(a, c) really meaningful? I'm not
sure that it is. I would sorta expect that inlined functions
don't get noticed by this hook at all.
Thoughts?
+ /* If we're instrumenting function entry/exit, then prepend the
call to
+ the entry hook and wrap the whole function in a TRY_FINALLY_EXPR
to
+ catch the exit hook. */
+ /* ??? Add some way to ignore exceptions for this TFE. */