cmath (fpclassify): Use __builtin_fpclassify.
authorPaolo Carlini <paolo.carlini@oracle.com>
Fri, 23 May 2008 10:03:31 +0000 (10:03 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Fri, 23 May 2008 10:03:31 +0000 (10:03 +0000)
2008-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

* include/c_std/cmath (fpclassify): Use __builtin_fpclassify.
* include/c_global/cmath (fpclassify): Likewise.

From-SVN: r135795

libstdc++-v3/ChangeLog
libstdc++-v3/include/c_global/cmath
libstdc++-v3/include/c_std/cmath

index dac9a8ac7946059687d611cd2681860f2810f37f..d2ac4e2d6432d165871f3fac362d5b5b014ae593 100644 (file)
@@ -1,3 +1,8 @@
+2008-05-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/c_std/cmath (fpclassify): Use __builtin_fpclassify.
+       * include/c_global/cmath (fpclassify): Likewise.
+
 2008-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/tr1_impl/hashtable_policy.h (_Map_base<,,
index f7be4d0fd0ac4aeedc6b4acc1b069a00f7fdb8de..fad38e2f95de53e5219f2c33f4e92a0f725cb6e0 100644 (file)
@@ -1,7 +1,7 @@
 // -*- C++ -*- C forwarding header.
 
 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007
+// 2006, 2007, 2008
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -480,14 +480,6 @@ _GLIBCXX_END_NAMESPACE
 // conformance, remove possible C99-injected names from the global
 // namespace, and sequester them in the __gnu_cxx extension namespace.
 
-_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-
-  template<typename _Tp>
-    inline int
-    __capture_fpclassify(_Tp __f) { return fpclassify(__f); }
-
-_GLIBCXX_END_NAMESPACE
-
 // Only undefine the C99 FP macros, if actually captured for namespace movement
 #undef fpclassify
 #undef isfinite
@@ -510,7 +502,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     fpclassify(_Tp __f)
     {
       typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
-      return ::__gnu_cxx::__capture_fpclassify(__type(__f));
+      return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
+                                 FP_SUBNORMAL, FP_ZERO, __type(__f));
     }
 
   template<typename _Tp>
index 52c1d2a3505f3b21410ed9f7b34760ba23306b28..cc26880bb81cbef98872419d656fbf2c83b6e5a7 100644 (file)
@@ -1,7 +1,7 @@
 // -*- C++ -*- C forwarding header.
 
 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007
+// 2006, 2007, 2008
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -462,14 +462,6 @@ _GLIBCXX_END_NAMESPACE
 // conformance, remove possible C99-injected names from the global
 // namespace, and sequester them in the __gnu_cxx extension namespace.
 
-_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-
-  template<typename _Tp>
-    inline int
-    __capture_fpclassify(_Tp __f) { return fpclassify(__f); }
-
-_GLIBCXX_END_NAMESPACE
-
 // Only undefine the C99 FP macros, if actually captured for namespace movement
 #undef fpclassify
 #undef isfinite
@@ -492,7 +484,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     fpclassify(_Tp __f)
     {
       typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
-      return ::__gnu_cxx::__capture_fpclassify(__type(__f));
+      return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
+                                 FP_SUBNORMAL, FP_ZERO, __type(__f));
     }
 
   template<typename _Tp>