This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

CYGWIN 2.3.0 [32/64]: strtold() seems to be broken

Hi Cygwin Developers,

strtold() seems to be broken, at least when there is additional
non-numeric data after the initial numeric part.


> #include <iostream>
> #include <stdlib.h>
> int main()
> {
>   char* endptr;
>   const char * v = "1234abc";
>   const long double value = strtold(v, &endptr);
>   std::cout << v << " -> " << value << "\n";
> }

Linux (expected result):
> 1234abc -> 1234

CYGWIN (unexpected/wrong result):
> 1234abc -> -e+999

Note that using strtod() instead of strtold() on CYGWIN gives the
expected result. strtod() and strtold() implementations seem to differ

BTW: There seem to be more strange things going on with strtold() on
CYGWIN32/64, see also:
(tested today with recent CYGWIN, the reported inconsistency can still
be reproduced).

"cygcheck.out" attached (from a CYGWIN64 box, but this can also be
reproduced on a CYGWIN32 box).

Please let me know if you need more information. 

Thanks and best regards,


Attachment: cygcheck.out
Description: Binary data

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]