diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-09-06 15:42:08 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-09-02 13:32:08 +0200 |
commit | 59a47686897350d334b85634fffe6b6b3cca2e16 (patch) | |
tree | 7b2656f85ff03b824e61ab056c53d30d61208ce7 | |
parent | 9d8edd7aacfad7f411a7fcd4e271f3898d76e6c1 (diff) |
libc: Avoid dead code in memset()
-rw-r--r-- | cpukit/libc/string/memset.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cpukit/libc/string/memset.c b/cpukit/libc/string/memset.c index e8e667a241..a5ea43ea86 100644 --- a/cpukit/libc/string/memset.c +++ b/cpukit/libc/string/memset.c @@ -29,7 +29,7 @@ QUICKREF #include <string.h> #include "local.h" -#define LBLOCKSIZE (sizeof(long)) +#define LBLOCKSIZE (__SIZEOF_LONG__) #define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1)) #define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) @@ -42,7 +42,9 @@ memset (void *m, char *s = (char *) m; #if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__) +#if LBLOCKSIZE > 4 unsigned int i; +#endif unsigned long buffer; unsigned long *aligned_addr; unsigned int d = c & 0xff; /* To avoid sign extension, copy C to an @@ -65,8 +67,10 @@ memset (void *m, we can set large blocks quickly. */ buffer = (d << 8) | d; buffer |= (buffer << 16); +#if LBLOCKSIZE > 4 for (i = 32; i < LBLOCKSIZE * 8; i <<= 1) buffer = (buffer << i) | buffer; +#endif /* Unroll the loop. */ while (n >= LBLOCKSIZE*4) |