Index: libiberty/md5.c |
diff --git a/libiberty/md5.c b/libiberty/md5.c |
index 8cc0cb5fe96f43885f1564ba7e285a7315a04e5a..b30a6b7bfc511c045499c76d61c517859f6d2252 100644 |
--- a/libiberty/md5.c |
+++ b/libiberty/md5.c |
@@ -293,8 +293,7 @@ md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) |
length of the file up to 2^64 bits. Here we only compute the |
number of bytes. Do a double word increment. */ |
ctx->total[0] += len; |
- if (ctx->total[0] < len) |
- ++ctx->total[1]; |
+ ctx->total[1] += ((len >> 31) >> 1) + (ctx->total[0] < len); |
/* Process all bytes in the buffer with 64 bytes in each round of |
the loop. */ |