https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95189
--- Comment #21 from Luke Dashjr <luke-jr+gccbugs at utopios dot org> --- Not entirely, I think? At least according to the docs: if you wish to enable built-in functions selectively when using -fno-builtin or -ffreestanding, you may define macros such as: #define abs(n) __builtin_abs ((n)) #define strcpy(d, s) __builtin_strcpy ((d), (s)) Which suggests code that calls __builtin_memcmp explicitly could still be broken.