[ https://issues.apache.org/jira/browse/STDCXX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12600120#action_12600120 ] Farid Zaripov commented on STDCXX-51: ------------------------------------- On x86 platform copying of the floating-point value using fld + fstp assembly commands converting the snan value to qnan. So the __rw_fmat_infinite() on compilers, that uses fld+fstp (i.e. MSVC), will always print qnan when snan value is passed, because of the parameter val passed by value. > infinity, NaN formatted differently on different platforms > ---------------------------------------------------------- > > Key: STDCXX-51 > URL: https://issues.apache.org/jira/browse/STDCXX-51 > Project: C++ Standard Library > Issue Type: Improvement > Components: 22. Localization > Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1 > Environment: all > Reporter: Martin Sebor > Assignee: Martin Sebor > Priority: Minor > Fix For: 4.2.2 > > Attachments: num_put.diff > > Original Estimate: 13h > Time Spent: 13h > Remaining Estimate: 8h > > The output of the program below is different depending on the operating system it runs on. It should be the same (preferably like that on AIX). > {noformat} > $ cat u.cpp && uname -sr && make u -r && ./u > #include > #include > int main () > { > std::cout << std::numeric_limits::infinity () << '\n' > << std::numeric_limits::quiet_NaN () << '\n' > << std::numeric_limits::signaling_NaN () << '\n'; > } > SunOS 5.9 > gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -pthreads -D_RWSTD_USE_CONFIG -I/build/sebor/gcc-3.4.3-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include -pedantic -nostdinc++ -g -Wall -W -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long u.cpp > gcc u.o -o u -pthreads -L/build/sebor/gcc-3.4.3-15s/lib -lstd15s -lsupc++ -lm > rm u.o > inf > nan > nan > $ uname -vs && gmake u -r && ./u > AIX 5 > xlCcore_r -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/vacpp-7.0.0.3-15D/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include -g -q64 -qtemplateregistry=u.ti u.cpp > xlCcore_r u.o -o u -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -liconv -brtl -q64 -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/vacpp-7.0.0.3-15D/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include -qtemplateregistry=u.ti -L/build/sebor/vacpp-7.0.0.3-15D/lib -lstd15D -lm > rm u.o > inf > nanq > nans > {noformat} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.