Remove undefined behaviors

This commit is contained in:
Justine Tunney 2021-05-16 11:16:28 -07:00
parent 4864565198
commit b3838173ec
51 changed files with 756 additions and 1302 deletions

View file

@ -62,7 +62,7 @@ void *memccpy(void *dst, const void *src, int c, size_t n) {
d = dst;
s = src;
c &= 255;
v = 0x0101010101010101 * c;
v = 0x0101010101010101ul * c;
for (; (uintptr_t)(s + i) & 7; ++i) {
if (i == n) return NULL;
if ((d[i] = s[i]) == c) return d + i + 1;

View file

@ -31,7 +31,7 @@ void *memchr(const void *m, int c, size_t n) {
uint64_t v, w;
const char *p, *pe;
c &= 255;
v = 0x0101010101010101 * c;
v = 0x0101010101010101ul * c;
for (p = m, pe = p + n; p + 8 <= pe; p += 8) {
w = (uint64_t)(255 & p[7]) << 070 | (uint64_t)(255 & p[6]) << 060 |
(uint64_t)(255 & p[5]) << 050 | (uint64_t)(255 & p[4]) << 040 |

View file

@ -31,7 +31,7 @@ void *memset_pure(void *p, int c, size_t n) {
char *b;
uint64_t x;
b = p;
x = 0x0101010101010101 * (c & 0xff);
x = 0x0101010101010101ul * (c & 0xff);
switch (n) {
case 0:
return p;

View file

@ -37,7 +37,7 @@ void *rawmemchr(const void *m, int c) {
const unsigned char *s;
s = m;
c &= 255;
v = 0x0101010101010101 * c;
v = 0x0101010101010101ul * c;
for (; (uintptr_t)s & 7; ++s) {
if (*s == c) return s;
}