diff --git a/src/ox/std/memops.cpp b/src/ox/std/memops.cpp index abde8da63..e24a3def3 100644 --- a/src/ox/std/memops.cpp +++ b/src/ox/std/memops.cpp @@ -11,18 +11,22 @@ #ifndef OX_USE_STDLIB +#define ox_inhibit_loop_to_libcall __attribute__((__optimize__ ("-fno-tree-loop-distribute-patterns"))) + extern "C" { -void *memcpy(void *dest, const void *src, std::size_t size) { +void *ox_inhibit_loop_to_libcall memcpy(void *dest, const void *src, std::size_t size) { return ox_memcpy(dest, src, size); } -void *memset(void *ptr, int val, std::size_t size) { +void *ox_inhibit_loop_to_libcall memset(void *ptr, int val, std::size_t size) { return ox_memset(ptr, val, size); } } +#undef ox_inhibit_loop_to_libcall + #endif int ox_memcmp(const void *ptr1, const void *ptr2, std::size_t size) noexcept { diff --git a/src/ox/std/memops.hpp b/src/ox/std/memops.hpp index 5e4a57059..948e98be9 100644 --- a/src/ox/std/memops.hpp +++ b/src/ox/std/memops.hpp @@ -28,9 +28,9 @@ constexpr void *ox_memcpy(void *dest, const void *src, std::size_t size) noexcep } constexpr void *ox_memset(void *ptr, int val, std::size_t size) noexcept { - auto buf = static_cast(ptr); + auto buf = reinterpret_cast(ptr); for (std::size_t i = 0; i < size; i++) { - buf[i] = val; + buf[i] = static_cast(val); } return ptr; }