https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63215
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, we can easily distinguish them by seeing whether a definition is available. That is, symbols with a definition should _always_ be output? I don't see any difficulties with builtin handling in general (though we probably should stop streaming builtins specially so we retain as builtin what was a builtin during compile-time). tree merging should happily merge equal builtin decls (and we compare them by function code anyway).