diff --git a/subsys/testsuite/coverage/coverage.c b/subsys/testsuite/coverage/coverage.c index 75d3b090178..e787135ffdc 100644 --- a/subsys/testsuite/coverage/coverage.c +++ b/subsys/testsuite/coverage/coverage.c @@ -8,6 +8,7 @@ #include #include #include +#include #include "coverage.h" K_HEAP_DEFINE(gcov_heap, CONFIG_COVERAGE_GCOV_HEAP_SIZE); @@ -38,12 +39,9 @@ void __gcov_exit(void) * buff_write_u64 - Store 64 bit data on a buffer and return the size */ -#define MASK_32BIT (0xffffffffUL) static inline void buff_write_u64(void *buffer, size_t *off, uint64_t v) { - *((uint32_t *)((uint8_t *)buffer + *off) + 0) = (uint32_t)(v & MASK_32BIT); - *((uint32_t *)((uint8_t *)buffer + *off) + 1) = (uint32_t)((v >> 32) & - MASK_32BIT); + memcpy((uint8_t *)buffer + *off, (uint8_t *)&v, sizeof(v)); *off = *off + sizeof(uint64_t); } @@ -52,7 +50,7 @@ static inline void buff_write_u64(void *buffer, size_t *off, uint64_t v) */ static inline void buff_write_u32(void *buffer, size_t *off, uint32_t v) { - *((uint32_t *)((uint8_t *)buffer + *off)) = v; + memcpy((uint8_t *)buffer + *off, (uint8_t *)&v, sizeof(v)); *off = *off + sizeof(uint32_t); }