[C++] Avoid one place of frontend calling into targetm

Steve Ellcey sje@cup.hp.com
Mon Jun 4 18:16:00 GMT 2007


> There are supposed to be just one global constructor function instead of
> possibly produced multiple of them  before the patch. However it looks
> that in your case something went wrong (if there is no global
> constructor). The one visible to outer world should be produced by
> cgraph_build_static_cdtor, so it should not be too dificult to track
> down if it is done so.
> 
> I will look into that, but unfortunately only after 8th, I am travelling
> now. Please remind me in case I forget (I will try not to do so)
> 
> Honza

OK, In the mean time here is a bit more information, I think this is the
same as PR 31908 and may be related to PR 30151.  I just noticed while
looking around some more that while _GLOBAL__I_c went from being global
to being static, there is a new global variable called _GLOBAL__I_0_c
that wasn't there before.  _GLOBAL__I_0_c has a call to _GLOBAL__I_c, so
it looks like the bug is that the call from the code created by collect2
is using the static name, _GLOBAL__I_c, instead of the global name,
_GLOBAL__I_0_c.

Steve Ellcey
sje@cup.hp.com



More information about the Gcc-patches mailing list