Fixed undefined behavior in JSON serializer

This commit is contained in:
Benoit Blanchon
2021-04-15 11:21:34 +02:00
parent 4ddc674846
commit 88fbe3ac34

View File

@ -92,9 +92,9 @@ class TextFormatter {
unsigned_type unsigned_value;
if (value < 0) {
writeRaw('-');
unsigned_value = static_cast<unsigned_type>(-value);
unsigned_value = unsigned_type(unsigned_type(~value) + 1);
} else {
unsigned_value = static_cast<unsigned_type>(value);
unsigned_value = unsigned_type(value);
}
writeInteger(unsigned_value);
}