http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60449
--- Comment #11 from Jan Hubicka <hubicka at gcc dot gnu.org> --- > OTOH, why do we have to merge the decls/cgraph nodes at all? Can't we simply > make them aliases if tree merging decides the decls are not equal? If we do so, we would never merge external declaration from one unit with definition from other, so everything would go through aliases effectively doubling the symtab. Also aliases currently ar different symbols, not different tree representation of the same symbol, so one would need to rename the declaration and make it to bubble all the way into the assembler file. We can resort to not merging in selected cases, but I would prefer to do that only when we have very good reason why we want to do so.