> On 04/02/2015 02:11 PM, Jan Hubicka wrote: > >>>2015-03-18 Ilya Enkovich <ilya.enkov...@intel.com> > >>> > >>> * cgraphunit.c (cgraph_node::expand_thunk): Don't expand > >>> instrumentation thunks. > >>> > >>> > >>>diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c > >>>index e640907..abc9cfe 100644 > >>>--- a/gcc/cgraphunit.c > >>>+++ b/gcc/cgraphunit.c > >>>@@ -1508,6 +1508,10 @@ cgraph_node::expand_thunk (bool output_asm_thunks, > >>>bool force_gimple_thunk) > >>> tree thunk_fndecl = decl; > >>> tree a; > >>> > >>>+ /* Instrumentation thunk is the same function with > >>>+ a different signature. Never need to expand it. */ > >>>+ if (thunk.add_pointer_bounds_args) > >>>+ return false; > > > >Yeah, this is another case where we hit problem with transparent alias > >pretending > >to be thunk :) > >I guess the patch is OK for GCC-5 and for next stage1 we can clean this up. > I was actually building a compiler so I could take a look at this > one under a debugger ;-)
I think it is really the transparent alias issue. The comment seems pretty clear about it. What is confusing is that instrumentation thunks are called thunks when they are really not - thunk is a small hunk of code, while instrumentation thunk is a transparent alias. Too bad I did not notice we introduced transparent aliases, i would push out my code for that. I will compare Ilya's changes with mine and hopefully we can catch more bugs and unify the code next stage1. Honza