Fix undefined behaviour in 128-bit integer-to-string conversion
[folly.git] / folly / Conv.h
index 53be6b8211382dd6c93a089315f0ea6b14506c0c..25af3ea058b485bdaf46c226e42e0d76167b1435 100644 (file)
@@ -461,7 +461,7 @@ toAppend(__int128 value, Tgt * result) {
   size_t p;
 
   if (value < 0) {
-    p = detail::unsafeTelescope128(buffer, sizeof(buffer), Usrc(-value));
+    p = detail::unsafeTelescope128(buffer, sizeof(buffer), -Usrc(value));
     buffer[--p] = '-';
   } else {
     p = detail::unsafeTelescope128(buffer, sizeof(buffer), value);