Hi Tino, On Nov 13 12:58, Tino Lange wrote: > Hi Cygwin Developers, > > strtold() seems to be broken, at least when there is additional > non-numeric data after the initial numeric part. > > Code: > > > #include > > #include > > > > 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 > here. > > BTW: There seem to be more strange things going on with strtold() on > CYGWIN32/64, see also: > https://stackoverflow.com/questions/29040427/unexpected-endptr-with-strtod-strtold > (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). Strtold is implemented in newlib, our underlying libc, so this doesn't only affect Cygwin but all newlib targets. Would you mind to report this to the newlib AT sourceware DOT org mailing list so we can discuss this there? Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat