[Bug middle-end/45388] [4.6 Regression] Global constructor not found

hubicka at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Dec 12 19:55:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45388

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-12-12 19:54:28 UTC ---
Mine, patch sent http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00961.html

Sorry about the delay. 

The problem is not that I would not want constructors to be global. The problem
was that since the original constructor merging was introduced (in 2004), C++
FE produced collect2 recognizable names for no reason. This problem was masked
by fact that the code set always inline flag on all functions. This is wrong,
since not all functions are inlinable so it can lead to ICE when non-inlinable
static constructor is introduced.

The patch should avoid those recognizable names until final merging pass and
thus avoid the problem.

Honza



More information about the Gcc-bugs mailing list