https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90648
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Another thing is that gimple_builtin_call_types_compatible_p compares the argument types to the TYPE_ARG_TYPES of the fndecl, but that could very well be the user provided prototype rather than what GCC relies on. So perhaps the way forward is just do a better job on the C FE side too, if the user provided decl is too different, make sure not to overwrite the old anticipated builtin and don't mark the new decl as builtin.