https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65074
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #5 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Hi, as Jakub noticed I just fixed the same bug independently by https://gcc.gnu.org/ml/gcc-patches/2015-02/msg01004.html The fix is bit different. It adds DECL_EXTERNAL check in addition to node->definition. Concerning discussion here, node->definition really just means that the definition is there at the time you check the flag. It does not imply it will be output - it can be removed later by IPA optimization or it may be a definition of external variable or alias. Using node->process flag is not a good idea, because these flags are set only while generating final assembler output, while we use binds_local_p during IPA optimization, too. I see nothing wrong with dropping the use of ->definition flag as suggested by Richard. It is probably good cleanup compared to my change. The lto-cgraph.c and symtab.c parts of my change are still useful to fix some of nonsenses WRT definitions and ltrans partitions. Honza