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-04-11 08:11:05 +0200 |
commit | b24cf97f7e1bf33c299efa426361f3f8cc667cc9 (patch) | |
tree | 1ec43c4d8ddf3c3753a3f9accffed012be5cf987 | |
parent | 1e671847135f6d975d194e81e5977e0253691f42 (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) |