http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55395
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-04 15:10:00 UTC --- (In reply to comment #8) > OK, the aim was mostly to get rid of large constructors. Is it possible to > tell > when the DECL_INITIAL will be needed? This problem also exists with LTO > where > we do not stream initializers of variables not assigned to a given > partition. It is always used if available and there is no other way to generate the location info for it (which for vars that were removed from the varpool is probably always, I bet those aren't assigned memory locations). The question is of course if it can successfully generate something out of it or not, but you can't guess that before it tried. For the invalid error part of this PR, it would be just important that it doesn't set DECL_INITIAL to error_mark_node, but some other magic value which says, this decl had non-zero initializer, but ignore the other details about it. Of course to make the debug info more complete you really should keep the initializer. Aren't you building mozilla with LTO without -g anyway, given that LTO screws up debug info so terribly that it isn't useful at all? Can you come up with some short testcase that would show what kind of large constructors you care about?