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 > range > > 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 sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users