]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
complex (arg): Use std::signbit only when available.
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 22 Feb 2010 18:41:55 +0000 (18:41 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 22 Feb 2010 18:41:55 +0000 (18:41 +0000)
2010-02-22  Paolo Carlini  <paolo.carlini@oracle.com>

* include/tr1_impl/complex (arg): Use std::signbit only when
available.

From-SVN: r156972

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr1_impl/complex

index 664f57d3c13c412321aedd745940d713b8e668de..d60096a551edd891d073a6afd76cff5714e5a5b4 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/tr1_impl/complex (arg): Use std::signbit only when
+       available.
+
 2010-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/bits/functional_hash.h (hash<string>, hash<wstring>,
index ac420bf199cb2905ae6ad94edf256e5e2ac0abe6..aae4a1381ad5ba0629d0ac45ef2abf9fb5b4d4d1 100644 (file)
@@ -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<typename _Tp>