diff --git a/src/big_int.cpp b/src/big_int.cpp index dc3d50589..5b6b228a5 100644 --- a/src/big_int.cpp +++ b/src/big_int.cpp @@ -499,7 +499,7 @@ void big_int_add(BigInt *dst, BigInt const *x, BigInt const *y) { smaller = &neg_abs; break; default: - GB_PANIC("Invalid bit_int_cmp value"); + GB_PANIC("Invalid big_int_cmp value"); return; } @@ -530,6 +530,9 @@ void big_int_add(BigInt *dst, BigInt const *x, BigInt const *y) { if (sub_overflow_u64(v, prev_overflow, &v)) { found_word = true; overflow += 1; + } else { + // IMPORTANT TODO(bill): Is this mathematics correct here? + v += prev_overflow; } dst->d.words[i] = v; i += 1;