On Tue, Sep 12, 2017 at 8:47 AM, Clemens Ladisch <clem...@ladisch.de> wrote:
> Dominique Devienne wrote:
> > sqlite3.c(17654): error #265: floating-point operation result is out of
> Could this error be reduced to a warning?
Probably. We typically compile with a strict warning-as-error setting.
> > // around line 17644
> > - result = 1e308*1e308*s; /* Infinity */
> > + result = 1e308*(1e308*s); /* Infinity */
> C99 7.12 (<math.h>) says:
> | 4 The macro INFINITY expands to a constant expression of type float
> | representing positive or unsigned infinity, if available; else to
> | a positive constant of type float that overflows at translation
> | time.*
> | * In this case, using INFINITY will violate the constraint in 6.4.4
> | and thus require a diagnostic.
> So I guess an "#ifdef INFINITY" should be added.
> This macro was introduced in C99 (as was strtod("INF")), so we still
> need a fallback. And if we don't want to hack the IEEE float bit
> pattern, the only choices are overflow or "1.0/0.0".
Makes sense. --DD
sqlite-users mailing list