projects
/
gnulib.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1312379
)
Fix small bug in 'divide' function.
author
Bruno Haible
<bruno@clisp.org>
Fri, 18 May 2007 23:35:38 +0000
(23:35 +0000)
committer
Bruno Haible
<bruno@clisp.org>
Fri, 18 May 2007 23:35:38 +0000
(23:35 +0000)
lib/vasnprintf.c
patch
|
blob
|
history
diff --git
a/lib/vasnprintf.c
b/lib/vasnprintf.c
index
fdca886
..
f67211b
100644
(file)
--- a/
lib/vasnprintf.c
+++ b/
lib/vasnprintf.c
@@
-623,19
+623,19
@@
divide (mpn_t a, mpn_t b, mpn_t *q)
goto increment_q;
{
size_t i;
goto increment_q;
{
size_t i;
- for (i = b_len;
i > 0;
)
+ for (i = b_len;
;
)
{
{
+ mp_limb_t r_i =
+ (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
+ | (i < r_len ? r_ptr[i] << 1 : 0);
+ mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
+ if (r_i > b_i)
+ goto increment_q;
+ if (r_i < b_i)
+ goto keep_q;
+ if (i == 0)
+ break;
i--;
i--;
- {
- mp_limb_t r_i =
- (i + 1 < r_len ? r_ptr[i + 1] >> (GMP_LIMB_BITS - 1) : 0)
- | (i < r_len ? r_ptr[i] << 1 : 0);
- mp_limb_t b_i = b_ptr[i];
- if (r_i > b_i)
- goto increment_q;
- if (r_i < b_i)
- goto keep_q;
- }
}
}
if (q_len > 0 && ((q_ptr[0] & 1) != 0))
}
}
if (q_len > 0 && ((q_ptr[0] & 1) != 0))