#include <stddef.h>
extern void *memcpy(void *dest, void const *from, size_t n);
#ifdef WITH_DECL
inline __attribute__((always_inline)) __attribute__((gnu_inline)) void *memcpy(void *dest, void const *from, size_t n) {
char const *ifrom = from;
char *idest = dest;
while (n--)
*idest++ = *ifrom++;
return dest;
}
#endif
#ifdef WITH_SELF_REFERENCE_DECL
inline __attribute__((always_inline)) __attribute__((gnu_inline)) void *memcpy(void *dest, void const *from, size_t n) {
if (n != 0)
memcpy(dest, from, n);
return dest;
}
#endif