[compiler-rt][NFC] Avoid implicit-integer-sign-change in FuzzedDataProvider::ConsumeI...
authorMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
Thu, 13 Jul 2023 14:27:38 +0000 (16:27 +0200)
committerMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
Mon, 17 Jul 2023 07:32:19 +0000 (09:32 +0200)
commitfa8401f9bfe81f4853bf9b67bff42a2cebffc10f
tree869c64f3d5b7fb8349a3909af09d8cca7fca6e61
parentd17f455a6348806c73641e742af08b0a974e13d5
[compiler-rt][NFC] Avoid implicit-integer-sign-change in FuzzedDataProvider::ConsumeIntegralInRange

This makes the implicit conversion that is happening explicit.
Otherwise, each user is forced to suppress this
implicit-integer-sign-change runtime error in their their UBSAN
suppressions file.

For example, the runtime error might look like:

runtime error: implicit conversion from type 'long' of value -9223372036854775808 (64-bit, signed) to type 'uint64_t' (aka 'unsigned long') changed the value to 9223372036854775808 (64-bit, unsigned)
    #0 0x55fe29dea91d in long FuzzedDataProvider::ConsumeIntegralInRange<long>(long, long) src/./test/fuzz/FuzzedDataProvider.h:233:25
    [...]
SUMMARY: UndefinedBehaviorSanitizer: implicit-integer-sign-change test/fuzz/FuzzedDataProvider.h:233:25 in

Differential Revision: https://reviews.llvm.org/D155206
compiler-rt/include/fuzzer/FuzzedDataProvider.h