bench: fixed ubsan implicit conversion

The benchmarks can now run much longer due to the minimum of 10ms or
directly with -min_time. With -min_time=20000 I could trigger two ubsan
errors in the benchmarks, which are fixed in this commit by using
unsigned type and adding "& 0xFF".
This commit is contained in:
Martin Ankerl 2021-09-18 14:12:43 +02:00
parent da4e2f1da0
commit e148a52332
No known key found for this signature in database
GPG Key ID: FBEAAD7FC6FFFE81
2 changed files with 10 additions and 10 deletions

View File

@ -110,9 +110,9 @@ static void MuHash(benchmark::Bench& bench)
{ {
MuHash3072 acc; MuHash3072 acc;
unsigned char key[32] = {0}; unsigned char key[32] = {0};
int i = 0; uint32_t i = 0;
bench.run([&] { bench.run([&] {
key[0] = ++i; key[0] = ++i & 0xFF;
acc *= MuHash3072(key); acc *= MuHash3072(key);
}); });
} }

View File

@ -13,16 +13,16 @@ static void RollingBloom(benchmark::Bench& bench)
uint32_t count = 0; uint32_t count = 0;
bench.run([&] { bench.run([&] {
count++; count++;
data[0] = count; data[0] = count & 0xFF;
data[1] = count >> 8; data[1] = (count >> 8) & 0xFF;
data[2] = count >> 16; data[2] = (count >> 16) & 0xFF;
data[3] = count >> 24; data[3] = (count >> 24) & 0xFF;
filter.insert(data); filter.insert(data);
data[0] = count >> 24; data[0] = (count >> 24) & 0xFF;
data[1] = count >> 16; data[1] = (count >> 16) & 0xFF;
data[2] = count >> 8; data[2] = (count >> 8) & 0xFF;
data[3] = count; data[3] = count & 0xFF;
filter.contains(data); filter.contains(data);
}); });
} }