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; unsigned_type unsigned_value;
if (value < 0) { if (value < 0) {
writeRaw('-'); writeRaw('-');
unsigned_value = static_cast<unsigned_type>(-value); unsigned_value = unsigned_type(unsigned_type(~value) + 1);
} else { } else {
unsigned_value = static_cast<unsigned_type>(value); unsigned_value = unsigned_type(value);
} }
writeInteger(unsigned_value); writeInteger(unsigned_value);
} }