Address several warnings generated by clang -fsanitize=undefined
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/
43050043
if(i < 0 || i >= bv->n)
fatal("bvget: index %d is out of bounds with length %d\n", i, bv->n);
- mask = 1 << (i % WORDBITS);
+ mask = 1U << (i % WORDBITS);
word = bv->b[i / WORDBITS] & mask;
return word ? 1 : 0;
}
uint64 uv, v;
uchar buf[10], *p;
- uv = (uint64)(sval<<1) ^ (uint64)(int64)(sval>>63);
+ uv = ((uint64)sval<<1) ^ (uint64)(int64)(sval>>63);
p = buf;
for(v = uv; v >= 0x80; v >>= 7)
break;
}
- return (int64)(uv>>1) ^ ((int64)uv<<63>>63);
+ return (int64)(uv>>1) ^ ((int64)((uint64)uv<<63)>>63);
}
static char*
v = 0;
p = *pp;
for(shift = 0;; shift += 7) {
- v |= (*p & 0x7F) << shift;
+ v |= (uint32)(*p & 0x7F) << shift;
if(!(*p++ & 0x80))
break;
}