avoid compiler warnings

This commit is contained in:
ensc 2008-02-14 20:32:56 +00:00
commit a263bc0007

View file

@ -107,7 +107,7 @@ diff -upN dietlibc-0.31.20080212/lib/strstr.c.strlen dietlibc-0.31.20080212/lib/
for (i=hl-nl+1; __likely(i); --i) {
diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/strlen.c
--- dietlibc-0.31.20080212/lib/strlen.c.strlen 2003-08-19 21:34:18.000000000 +0200
+++ dietlibc-0.31.20080212/lib/strlen.c 2008-02-14 21:27:31.000000000 +0100
+++ dietlibc-0.31.20080212/lib/strlen.c 2008-02-14 21:31:09.000000000 +0100
@@ -1,6 +1,7 @@
#include <endian.h>
#include "dietfeatures.h"
@ -116,7 +116,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/
#ifdef WANT_SMALL_STRING_ROUTINES
size_t strlen(const char *s) {
@@ -10,38 +11,87 @@ size_t strlen(const char *s) {
@@ -10,38 +11,88 @@ size_t strlen(const char *s) {
return i;
}
#else
@ -161,6 +161,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/
- word += (word << 8) + (word << 16);
- t += word >> 26;
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+ (void)mask;
+ switch (sizeof(word)) {
+ case 8:
+ /* word & 0x8080808080808080 == word */
@ -178,7 +179,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/
+ t += word >> 26;
+ break;
+
+ default: { char exc[sizeof(word)==8]; }
+ default: { char exc[sizeof(word)==8]; (void)exc; }
+ }
#else
- if ((word & 0x80800000) == 0) {
@ -211,7 +212,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/
+ }
+ break;
+
+ default: { char exc[sizeof(word)==8]; }
+ default: { char exc[sizeof(word)==8]; (void)exc; }
}
- if ((word & 0x80000000) == 0) t += 1;
#endif