https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61001
--- Comment #5 from Hans-Peter Nilsson <hp at gcc dot gnu.org> --- Well, it sucks as a failure mode. (User: "*Multiple* definitions? But I provided *one*! Surely a linker bug/misfeature of some sorts!") (Note: I'd be totally ok with e.g. compiling memcpy into a recursive function, so the typical user may not agree!) Anyway I'm less and less convinced that this behavior is desired (forgetting about whatever functions happen to also be builtins when emitting the LTO tentative symbols, then *re-introducing* them when emitting the real object code). See also PR55994.