code: plan9front

Download patch

ref: 0719ce2aa793f28ca63d2395a3568b75a60db27b
parent: 2d8adc7b881f20a8cc2dbccab84fc7e1655752a6
author: Ori Bernstein <ori@eigenstate.org>
date: Tue Feb 9 16:57:38 EST 2021

stdio: remove erronous assert in dtoa

The value of `k` in dtoa() is an estimate of
floor(log10(d)), where `d` is the number being
converted. The code was asserting that 'k' was
less than 100, but the full range of a double
goes to 10^308 or so.

This means that the majority of the range of
a double would trigger that assert.

--- a/sys/src/libstdio/dtoa.c
+++ b/sys/src/libstdio/dtoa.c
@@ -811,7 +811,6 @@
 		b5 = -k;
 		s5 = 0;
 	}
-	assert(k < 100);
 	if (mode < 0 || mode > 9)
 		mode = 0;
 	try_quick = 1;