https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111722
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |RESOLVED Resolution|--- |INVALID --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- There is no bug here. ICF finds that your definition of memcpy is the same as memmove and merges the 2 and then calls memcpy from your memmove and then inlines the normal memcpy because well it says it is the same. You can just use -fno-builtin to fix the issue by saying memcpy and memmove are not builtins and treat them like normal functions. That fixes the issue by not inlining the target defined memcpy.