Module Name: src Committed By: riastradh Date: Fri Nov 4 19:18:53 UTC 2016
Modified Files: src/lib/libc/stdlib: strtod.3 Log Message: Fix infinity detection with isinf(d), not d == HUGE_VAL. Negative infinity counts as overflow too. Simplify. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/lib/libc/stdlib/strtod.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/stdlib/strtod.3 diff -u src/lib/libc/stdlib/strtod.3:1.24 src/lib/libc/stdlib/strtod.3:1.25 --- src/lib/libc/stdlib/strtod.3:1.24 Fri Nov 4 19:10:04 2016 +++ src/lib/libc/stdlib/strtod.3 Fri Nov 4 19:18:53 2016 @@ -1,4 +1,4 @@ -.\" $NetBSD: strtod.3,v 1.24 2016/11/04 19:10:04 riastradh Exp $ +.\" $NetBSD: strtod.3,v 1.25 2016/11/04 19:18:53 riastradh Exp $ .\" .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -202,9 +202,9 @@ if (s[0] == '\e0' || end[0] != '\e0') errx(1, "invalid syntax"); if (errno) { assert(errno == ERANGE); - assert(d == HUGE_VAL || d == -HUGE_VAL || d == 0 || + assert(isinf(d) || d == 0 || fpclassify(d) == FP_SUBNORMAL); - warnx("%s", d == HUGE_VAL ? "overflow" : "underflow"); + warnx("%s", isinf(d) ? "overflow" : "underflow"); } /* d is the best floating-point approximation to the number in s */ .Ed