From: Paolo Carlini Date: Mon, 22 Feb 2010 18:41:55 +0000 (+0000) Subject: complex (arg): Use std::signbit only when available. X-Git-Tag: releases/gcc-4.5.0~663 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=26504a0f8c9fcd068b61baec7de7c3a719ae3190;p=thirdparty%2Fgcc.git complex (arg): Use std::signbit only when available. 2010-02-22 Paolo Carlini * include/tr1_impl/complex (arg): Use std::signbit only when available. From-SVN: r156972 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 664f57d3c13c..d60096a551ed 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2010-02-22 Paolo Carlini + + * include/tr1_impl/complex (arg): Use std::signbit only when + available. + 2010-02-22 Paolo Carlini * include/bits/functional_hash.h (hash, hash, diff --git a/libstdc++-v3/include/tr1_impl/complex b/libstdc++-v3/include/tr1_impl/complex index ac420bf199cb..aae4a1381ad5 100644 --- a/libstdc++-v3/include/tr1_impl/complex +++ b/libstdc++-v3/include/tr1_impl/complex @@ -311,8 +311,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 arg(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; +#if (_GLIBCXX_USE_C99_MATH && !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC) return std::signbit(__x) ? __type(3.1415926535897932384626433832795029L) : __type(); +#else + return std::arg(std::complex<__type>(__x)); +#endif } template