* Noteworthy changes in release ?.? (????-??-??) [?]
+** Bug fixes
+
+ factor no longer goes into an infinite loop for certain numbers like
+ 158909489063877810457 and 222087527029934481871.
+ [bug introduced in coreutils-8.20]
+
* Noteworthy changes in release 8.26 (2016-11-30) [stable]
static uintmax_t
gcd2_odd (uintmax_t *r1, uintmax_t a1, uintmax_t a0, uintmax_t b1, uintmax_t b0)
{
+ assert (b0 & 1);
+
+ if ( (a0 | a1) == 0)
+ {
+ *r1 = b1;
+ return b0;
+ }
+
while ((a0 & 1) == 0)
rsh2 (a1, a0, a1, a0, 1);
- while ((b0 & 1) == 0)
- rsh2 (b1, b0, b1, b0, 1);
for (;;)
{
['bug-2012-c', '6635692801', {OUT => '57601 115201'}],
['bug-2012-d', '17709149503', {OUT => '94099 188197'}],
['bug-2012-e', '17754345703', {OUT => '94219 188437'}],
+ # Infinite loop bugs in v8.20 to 8.26 inclusive
+ ['bug-2016-a', '158909489063877810457',
+ {OUT => '3401347 3861211 12099721'}],
+ ['bug-2016-b', '222087527029934481871',
+ {OUT => '15601 26449 111427 4830277'}],
);
# If we have GMP support, append tests to exercise it.