stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: [jira] Updated: (STDCXX-51) infinity, NaN formatted differently on different platforms
Date Wed, 02 Apr 2008 16:16:42 GMT
I'm looking at this patch now but it'd be good if someone else
(especially Travis and/or Brad) could spend some time reviewing
it too. The goal here is to eventually provide implementations
for these functions (or similar) on all platforms.

Thanks
Martin

Farid Zaripov (JIRA) wrote:
>      [ https://issues.apache.org/jira/browse/STDCXX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
> 
> Farid Zaripov updated STDCXX-51:
> --------------------------------
> 
>     Attachment: num_put.diff
> 
> The proposed patch attached.
> 
> ChangeLog:
>   * src/num_put.cpp (__rw_isinfnan): New function to detect inf and nan values.
>   (__rw_isinf): New function to detect inf values.
>   (__rw_isneginf): New function to detect negative inf values.
>   (__rw_isnan): New function to detect nan values.
>   (__rw_isnegnan): New function to detect negative nan values.
>   (__rw_isqnan): New function to detect quiet nan values.
>   (__rw_issnan): New function to detect signaling nan values.
>   (__rw_fmat_infnan): New function to format inf and nan values.
>   (__rw_put_num): Use __rw_isinfnan() and __rw_fmat_infnan() to format inf and nan values.
> 
>> 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
>>         Environment: all
>>            Reporter: Martin Sebor
>>            Assignee: Farid Zaripov
>>            Priority: Minor
>>         Attachments: num_put.diff
>>
>>
>> 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).
>> $ cat u.cpp && uname -sr && make u -r && ./u
>> #include <iostream>
>> #include <limits>
>> int main ()
>> {
>>     std::cout << std::numeric_limits<double>::infinity () << '\n'
>>               << std::numeric_limits<double>::quiet_NaN () << '\n'
>>               << std::numeric_limits<double>::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
> 


Mime
View raw message