From f33654d94293f333eaeee21c928cfd283d616b60 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 5 Mar 2025 13:43:02 -0500 Subject: [PATCH] libroot/string: Put the misalignment check in memcmp() into a macro. --- src/system/libroot/posix/string/memcmp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system/libroot/posix/string/memcmp.c b/src/system/libroot/posix/string/memcmp.c index 1fd02c03a6..71d0cf98e4 100644 --- a/src/system/libroot/posix/string/memcmp.c +++ b/src/system/libroot/posix/string/memcmp.c @@ -9,13 +9,15 @@ #include +#define MISALIGNMENT(PTR, TYPE) ((addr_t)(PTR) & (sizeof(TYPE) - 1)) + int memcmp(const void *_a, const void *_b, size_t count) { const unsigned char *a = (const unsigned char *)_a; const unsigned char *b = (const unsigned char *)_b; - if ((((addr_t)a) & (sizeof(size_t) - 1)) == 0 && (((addr_t)b) & (sizeof(size_t) - 1)) == 0) { + if (MISALIGNMENT(a, size_t) == 0 && MISALIGNMENT(b, size_t) == 0) { size_t *asz = (size_t *)a; size_t *bsz = (size_t *)b;