2015-04-03 0:13 GMT+03:00 Jan Hubicka <hubi...@ucw.cz>: >> 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.
Thunk was the best I could find to represent the same function but with different signature. It would be great to have a more specialized way for that. Thanks, Ilya > > Honza