mq_notify: block all (application) signals in the worker thread
[musl] / src / string / strlen.c
index d6f8631..309990f 100644 (file)
@@ -1,5 +1,4 @@
 #include <string.h>
-#include <stdlib.h>
 #include <stdint.h>
 #include <limits.h>
 
 size_t strlen(const char *s)
 {
        const char *a = s;
-       const size_t *w;
+#ifdef __GNUC__
+       typedef size_t __attribute__((__may_alias__)) word;
+       const word *w;
        for (; (uintptr_t)s % ALIGN; s++) if (!*s) return s-a;
        for (w = (const void *)s; !HASZERO(*w); w++);
-       for (s = (const void *)w; *s; s++);
+       s = (const void *)w;
+#endif
+       for (; *s; s++);
        return s-a;
 }