[libc++ patch] (and/or standard bug?): Let std::stof() call strtod / wcstod instead of strtof / wcstof
thakis at chromium.org
Wed Jun 4 17:49:17 PDT 2014
On Thu, Jun 5, 2014 at 2:21 AM, Richard Smith <richard at metafoo.co.uk> wrote:
> On Wed, Jun 4, 2014 at 3:27 PM, Joerg Sonnenberger <
> joerg at britannica.bec.de> wrote:
>> On Wed, Jun 04, 2014 at 02:51:49AM +0200, Nico Weber wrote:
>> > 21.5p4 and 21.5p11 say that std::stof() and std::stod() are both
>> > to call strtod() (for char*) or wcstod() (for wchar_t*). libc++
>> > calls strtof() / wcstof() from std::stof(), so the attached patch fixes
>> > this.
>> This looks like a bug in the standard.
> It is:
Cool, thanks. I hope that proposed resolution gets a slightly more detailed
text. Similar wording in the C standard apparently implies something along
the lines of "`1.e60` is a valid IEEE 754 spelling of INFINITY, and
INFINITY is a representable value" (
http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_025.html ) (which as far
as I understand is the interpretation that e.g. musl is using, so their
strtof doesn't set ERANGE on this input.)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits