about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-09-07 22:33:37 +0000
committerUlrich Drepper <drepper@redhat.com>2004-09-07 22:33:37 +0000
commitf377d02227448a6f0d97eaf48ba60483c2f27e98 (patch)
treedc3fa6ae400c4a26e8757fc1bfadce3ab5f4d018 /sysdeps
parent36ccb375a7f4db3ef66a0115961cfef23befa0e6 (diff)
downloadglibc-f377d02227448a6f0d97eaf48ba60483c2f27e98.tar.gz
glibc-f377d02227448a6f0d97eaf48ba60483c2f27e98.tar.xz
glibc-f377d02227448a6f0d97eaf48ba60483c2f27e98.zip
Update.
	* include/atomic.h: Define atomic_increment_val, atomic_decrement_val,
	and atomic_dealy is not already defined.
	* sysdeps/i386/i486/bits/atomic.h: Define atomic_delay.
	* sysdeps/x86_64/bits/atomic.h: Likewise.

	* miscd/sys/cdefs.h (__NTH): New macro.
	(__THROW): Define using nothrow attribute for C code and gcc >= 3.2.
	(__REDIRECT_NTH): New macro.
	* argp/argp.h: Use __NTH and __REDIRECT_NTH where necessary.
	* ctype/ctype.h: Likewise.
	* dirent/dirent.h: Likewise.
	* io/fcntl.h: Likewise.
	* io/sys/sendfile.h: Likewise.
	* io/sys/stat.h: Likewise.
	* io/sys/statfs.h: Likewise.
	* io/sys/statvfs.h: Likewise.
	* libio/bits/stdio.h: Likewise.
	* misc/sys/mman.h: Likewise.
	* posix/unistd.h: Likewise.
	* resource/sys/resource.h: Likewise.
	* rt/aio.h: Likewise.
	* signal/signal.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* string/argz.h: Likewise.
	* string/string.h: Likewise.
	* sysdeps/generic/inttypes.h: Likewise.
	* sysdeps/i386/fpu/bits/mathinline.h: Likewise.
	* sysdeps/powerpc/fpu/bits/mathinline.h: Likewise.
	* sysdeps/s390/fpu/bits/mathinline.h: Likewise.
	* sysdeps/x86_64/fpu/bits/mathinline.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sys/sysmacros.h: Likewise.
	* wcsmbs/wchar.h: Likewise.

	* sysdeps/generic/glob.c: Use __PMT isntead of __P where appropriate.

	* resolv/gethnamaddr.c (getanswer): Remove __P use in variable
	definition.

	* io/sys/poll.h: Remove __THROW from poll prototype, it's a
	cancellation point.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/inttypes.h32
-rw-r--r--sysdeps/i386/fpu/bits/mathinline.h42
-rw-r--r--sysdeps/i386/i486/bits/atomic.h3
-rw-r--r--sysdeps/powerpc/fpu/bits/mathinline.h28
-rw-r--r--sysdeps/s390/fpu/bits/mathinline.h14
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysmacros.h8
-rw-r--r--sysdeps/x86_64/bits/atomic.h5
-rw-r--r--sysdeps/x86_64/fpu/bits/mathinline.h8
9 files changed, 76 insertions, 68 deletions
diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h
index 4ac6815623..87f532f1d4 100644
--- a/sysdeps/generic/inttypes.h
+++ b/sysdeps/generic/inttypes.h
@@ -331,8 +331,8 @@ extern long int __strtol_internal (__const char *__restrict __nptr,
 #   define __strtol_internal_defined	1
 #  endif
 extern __inline intmax_t
-strtoimax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
+__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
 {
   return __strtol_internal (nptr, endptr, base, 0);
 }
@@ -346,8 +346,8 @@ extern unsigned long int __strtoul_internal (__const char *
 #   define __strtoul_internal_defined	1
 #  endif
 extern __inline uintmax_t
-strtoumax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
+__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
 {
   return __strtoul_internal (nptr, endptr, base, 0);
 }
@@ -360,8 +360,8 @@ extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
 #   define __wcstol_internal_defined	1
 #  endif
 extern __inline intmax_t
-wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
+__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
 {
   return __wcstol_internal (nptr, endptr, base, 0);
 }
@@ -377,8 +377,8 @@ extern unsigned long int __wcstoul_internal (__const __gwchar_t *
 #   define __wcstoul_internal_defined	1
 #  endif
 extern __inline uintmax_t
-wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
+__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
 {
   return __wcstoul_internal (nptr, endptr, base, 0);
 }
@@ -394,8 +394,8 @@ extern long long int __strtoll_internal (__const char *__restrict __nptr,
 #   define __strtoll_internal_defined	1
 #  endif
 extern __inline intmax_t
-strtoimax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
+__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
 {
   return __strtoll_internal (nptr, endptr, base, 0);
 }
@@ -412,8 +412,8 @@ extern unsigned long long int __strtoull_internal (__const char *
 #   define __strtoull_internal_defined	1
 #  endif
 extern __inline uintmax_t
-strtoumax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
+__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
 {
   return __strtoull_internal (nptr, endptr, base, 0);
 }
@@ -428,8 +428,8 @@ extern long long int __wcstoll_internal (__const __gwchar_t *
 #   define __wcstoll_internal_defined	1
 #  endif
 extern __inline intmax_t
-wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
+__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
 {
   return __wcstoll_internal (nptr, endptr, base, 0);
 }
@@ -447,8 +447,8 @@ extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
 #   define __wcstoull_internal_defined	1
 #  endif
 extern __inline uintmax_t
-wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
+__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
 {
   return __wcstoull_internal (nptr, endptr, base, 0);
 }
diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h
index 4256777db3..e04ce95099 100644
--- a/sysdeps/i386/fpu/bits/mathinline.h
+++ b/sysdeps/i386/fpu/bits/mathinline.h
@@ -125,19 +125,19 @@
 # if __GNUC_PREREQ (2, 8)
 /* Test for negative number.  Used in the signbit() macro.  */
 __MATH_INLINE int
-__signbitf (float __x) __THROW
+__NTH (__signbitf (float __x))
 {
   __extension__ union { float __f; int __i; } __u = { __f: __x };
   return __u.__i < 0;
 }
 __MATH_INLINE int
-__signbit (double __x) __THROW
+__NTH (__signbit (double __x))
 {
   __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
   return __u.__i[1] < 0;
 }
 __MATH_INLINE int
-__signbitl (long double __x) __THROW
+__NTH (__signbitl (long double __x))
 {
   __extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
   return (__u.__i[2] & 0x8000) != 0;
@@ -203,7 +203,7 @@ __signbitl (long double __x) __THROW
   __inline_mathop_declNP_ (float_type, func, op, params)
 
 #define __inline_mathop_declNP_(float_type, func, op, params...) \
-  __MATH_INLINE float_type func (float_type __x) __THROW		      \
+  __MATH_INLINE float_type __NTH (func (float_type __x))		      \
   {									      \
     register float_type __result;					      \
     __asm __volatile__ (op : "=t" (__result) : params);			      \
@@ -256,7 +256,7 @@ __signbitl (long double __x) __THROW
   __inline_mathcodeNP_(float_type, func, arg, code)
 
 #define __inline_mathcodeNP_(float_type, func, arg, code) \
-  __MATH_INLINE float_type func (float_type arg) __THROW		      \
+  __MATH_INLINE float_type __NTH (func (float_type arg))		      \
   {									      \
     code;								      \
   }
@@ -267,7 +267,7 @@ __signbitl (long double __x) __THROW
   __inline_mathcodeNP2_ (float_type, func, arg1, arg2, code)
 
 #define __inline_mathcodeNP2_(float_type, func, arg1, arg2, code) \
-  __MATH_INLINE float_type func (float_type arg1, float_type arg2) __THROW    \
+  __MATH_INLINE float_type __NTH (func (float_type arg1, float_type arg2))    \
   {									      \
     code;								      \
   }
@@ -277,8 +277,8 @@ __signbitl (long double __x) __THROW
   __inline_mathcodeNP3_(float_type, func, arg1, arg2, arg3, code)
 
 #define __inline_mathcodeNP3_(float_type, func, arg1, arg2, arg3, code) \
-  __MATH_INLINE float_type func (float_type arg1, float_type arg2,	      \
-				 float_type arg3) __THROW		      \
+  __MATH_INLINE float_type __NTH (func (float_type arg1, float_type arg2,     \
+					float_type arg3))		      \
   {									      \
     code;								      \
   }
@@ -341,19 +341,19 @@ __inline_mathcode (__pow2, __x, \
   *__cosx = __cosr
 
 __MATH_INLINE void
-__sincos (double __x, double *__sinx, double *__cosx) __THROW
+__NTH (__sincos (double __x, double *__sinx, double *__cosx))
 {
   __sincos_code;
 }
 
 __MATH_INLINE void
-__sincosf (float __x, float *__sinx, float *__cosx) __THROW
+__NTH (__sincosf (float __x, float *__sinx, float *__cosx))
 {
   __sincos_code;
 }
 
 __MATH_INLINE void
-__sincosl (long double __x, long double *__sinx, long double *__cosx) __THROW
+__NTH (__sincosl (long double __x, long double *__sinx, long double *__cosx))
 {
   __sincos_code;
 }
@@ -558,7 +558,7 @@ __inline_mathcodeNP (ceil, __x, \
   return __value
 
 __MATH_INLINE double
-ldexp (double __x, int __y) __THROW
+__NTH (ldexp (double __x, int __y))
 {
   __ldexp_code;
 }
@@ -628,13 +628,13 @@ __inline_mathop_declNP (log2, "fld1; fxch; fyl2x", "0" (__x) : "st(1)")
 #  endif
 
 __MATH_INLINE float
-ldexpf (float __x, int __y) __THROW
+__NTH (ldexpf (float __x, int __y))
 {
   __ldexp_code;
 }
 
 __MATH_INLINE long double
-ldexpl (long double __x, int __y) __THROW
+__NTH (ldexpl (long double __x, int __y))
 {
   __ldexp_code;
 }
@@ -651,17 +651,17 @@ __inline_mathopNP (rint, "frndint")
      : "=m" (__lrintres) : "t" (__x) : "st");				      \
   return __lrintres
 __MATH_INLINE long int
-lrintf (float __x) __THROW
+__NTH (lrintf (float __x))
 {
   __lrint_code;
 }
 __MATH_INLINE long int
-lrint (double __x) __THROW
+__NTH (lrint (double __x))
 {
   __lrint_code;
 }
 __MATH_INLINE long int
-lrintl (long double __x) __THROW
+__NTH (lrintl (long double __x))
 {
   __lrint_code;
 }
@@ -674,17 +674,17 @@ lrintl (long double __x) __THROW
      : "=m" (__llrintres) : "t" (__x) : "st");				      \
   return __llrintres
 __MATH_INLINE long long int
-llrintf (float __x) __THROW
+__NTH (llrintf (float __x))
 {
   __llrint_code;
 }
 __MATH_INLINE long long int
-llrint (double __x) __THROW
+__NTH (llrint (double __x))
 {
   __llrint_code;
 }
 __MATH_INLINE long long int
-llrintl (long double __x) __THROW
+__NTH (llrintl (long double __x))
 {
   __llrint_code;
 }
@@ -711,7 +711,7 @@ __inline_mathcodeNP2 (drem, __x, __y, \
 
 /* This function is used in the `isfinite' macro.  */
 __MATH_INLINE int
-__finite (double __x) __THROW
+__NTH (__finite (double __x))
 {
   return (__extension__
 	  (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1]
diff --git a/sysdeps/i386/i486/bits/atomic.h b/sysdeps/i386/i486/bits/atomic.h
index 7f3d534483..c748761758 100644
--- a/sysdeps/i386/i486/bits/atomic.h
+++ b/sysdeps/i386/i486/bits/atomic.h
@@ -361,3 +361,6 @@ typedef uintmax_t uatomic_max_t;
      else							      	      \
        abort ();							      \
      __result; })
+
+
+#define atomic_delay() asm ("rep; nop")
diff --git a/sysdeps/powerpc/fpu/bits/mathinline.h b/sysdeps/powerpc/fpu/bits/mathinline.h
index d9206d4fac..491d529091 100644
--- a/sysdeps/powerpc/fpu/bits/mathinline.h
+++ b/sysdeps/powerpc/fpu/bits/mathinline.h
@@ -61,13 +61,13 @@
 # if __GNUC_PREREQ (2, 8)
 /* Test for negative number.  Used in the signbit() macro.  */
 __MATH_INLINE int
-__signbitf (float __x) __THROW
+__NTH (__signbitf (float __x))
 {
   __extension__ union { float __f; int __i; } __u = { __f: __x };
   return __u.__i < 0;
 }
 __MATH_INLINE int
-__signbit (double __x) __THROW
+__NTH (__signbit (double __x))
 {
   __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
   return __u.__i[0] < 0;
@@ -82,7 +82,7 @@ __signbit (double __x) __THROW
 # ifndef __powerpc64__
 __MATH_INLINE long int lrint (double __x) __THROW;
 __MATH_INLINE long int
-lrint (double __x) __THROW
+__NTH (lrint (double __x))
 {
   union {
     double __d;
@@ -94,7 +94,7 @@ lrint (double __x) __THROW
 
 __MATH_INLINE long int lrintf (float __x) __THROW;
 __MATH_INLINE long int
-lrintf (float __x) __THROW
+__NTH (lrintf (float __x))
 {
   union {
     double __d;
@@ -107,14 +107,14 @@ lrintf (float __x) __THROW
 
 __MATH_INLINE double fdim (double __x, double __y) __THROW;
 __MATH_INLINE double
-fdim (double __x, double __y) __THROW
+__NTH (fdim (double __x, double __y))
 {
   return __x < __y ? 0 : __x - __y;
 }
 
 __MATH_INLINE float fdimf (float __x, float __y) __THROW;
 __MATH_INLINE float
-fdimf (float __x, float __y) __THROW
+__NTH (fdimf (float __x, float __y))
 {
   return __x < __y ? 0 : __x - __y;
 }
@@ -131,14 +131,14 @@ fdimf (float __x, float __y) __THROW
 
 extern double __slow_ieee754_sqrt (double);
 __MATH_INLINE double
-__ieee754_sqrt (double __x)
+__NTH (__ieee754_sqrt (double __x))
 {
   double __z;
-  
+
   /* If the CPU is 64-bit we can use the optional FP instructions we.  */
   if ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
   {
-    /* Volatile is required to prevent the compiler from moving the 
+    /* Volatile is required to prevent the compiler from moving the
        fsqrt instruction above the branch.  */
      __asm __volatile (
 	"	fsqrt	%0,%1\n"
@@ -147,20 +147,20 @@ __ieee754_sqrt (double __x)
   }
   else
      __z = __slow_ieee754_sqrt(__x);
-     
+
   return __z;
 }
 
 extern float __slow_ieee754_sqrtf (float);
 __MATH_INLINE float
-__ieee754_sqrtf (float __x)
+__NTH (__ieee754_sqrtf (float __x))
 {
   float __z;
-  
+
   /* If the CPU is 64-bit we can use the optional FP instructions we.  */
   if ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
   {
-    /* Volatile is required to prevent the compiler from moving the 
+    /* Volatile is required to prevent the compiler from moving the
        fsqrts instruction above the branch.  */
      __asm __volatile (
 	"	fsqrts	%0,%1\n"
@@ -169,7 +169,7 @@ __ieee754_sqrtf (float __x)
   }
   else
      __z = __slow_ieee754_sqrtf(__x);
-     
+
   return __z;
 }
 #  endif /* __LIBC_INTERNAL_MATH_INLINES */
diff --git a/sysdeps/s390/fpu/bits/mathinline.h b/sysdeps/s390/fpu/bits/mathinline.h
index d83d9ca8b8..4d22922f8d 100644
--- a/sysdeps/s390/fpu/bits/mathinline.h
+++ b/sysdeps/s390/fpu/bits/mathinline.h
@@ -33,13 +33,15 @@
 #ifdef __USE_ISOC99
 
 /* Test for negative number.  Used in the signbit() macro.  */
-__MATH_INLINE int __signbitf (float __x) __THROW
+__MATH_INLINE int
+__NTH (__signbitf (float __x))
 {
   __extension__ union { float __f; int __i; } __u = { __f: __x };
   return __u.__i < 0;
 }
 
-__MATH_INLINE int __signbit (double __x) __THROW
+__MATH_INLINE int
+__NTH (__signbit (double __x))
 {
   __extension__ union { double __d; long __i; } __u = { __d: __x };
   return __u.__i < 0;
@@ -55,19 +57,19 @@ __MATH_INLINE int __signbit (double __x) __THROW
 #include <dl-procinfo.h>
 
 __MATH_INLINE double
-__ieee754_sqrt (double x)
+__NTH (__ieee754_sqrt (double x))
 {
   double res;
-     
+
   asm ( "sqdbr %0,%1" : "=f" (res) : "f" (x) );
   return res;
 }
 
 __MATH_INLINE float
-__ieee754_sqrtf (float x)
+__NTH (__ieee754_sqrtf (float x))
 {
   float res;
-  
+
   asm ( "sqebr %0,%1" : "=f" (res) : "f" (x) );
   return res;
 }
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index c28e03ff35..e94a42175e 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -1,5 +1,5 @@
 /* System-specific socket constants and types.  Linux version.
-   Copyright (C) 1991,1992,1994-1999,2000,2001 Free Software Foundation, Inc.
+   Copyright (C) 1991,1992,1994-2001, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -261,7 +261,7 @@ extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
 #  define _EXTERN_INLINE extern __inline
 # endif
 _EXTERN_INLINE struct cmsghdr *
-__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
+__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
 {
   if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
     /* The kernel header does this so there may be a reason.  */
diff --git a/sysdeps/unix/sysv/linux/sys/sysmacros.h b/sysdeps/unix/sysv/linux/sys/sysmacros.h
index a9bfa78d3e..179642ff40 100644
--- a/sysdeps/unix/sysv/linux/sys/sysmacros.h
+++ b/sysdeps/unix/sysv/linux/sys/sysmacros.h
@@ -1,5 +1,5 @@
 /* Definitions of macros to access `dev_t' values.
-   Copyright (C) 1996, 1997, 1999, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -39,19 +39,19 @@ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
 
 # if defined __GNUC__ && __GNUC__ >= 2
 __extension__ extern __inline unsigned int
-gnu_dev_major (unsigned long long int __dev) __THROW
+__NTH (gnu_dev_major (unsigned long long int __dev))
 {
   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
 }
 
 __extension__ extern __inline unsigned int
-gnu_dev_minor (unsigned long long int __dev) __THROW
+__NTH (gnu_dev_minor (unsigned long long int __dev))
 {
   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
 }
 
 __extension__ extern __inline unsigned long long int
-gnu_dev_makedev (unsigned int __major, unsigned int __minor) __THROW
+__NTH (gnu_dev_makedev (unsigned int __major, unsigned int __minor))
 {
   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
 	  | (((unsigned long long int) (__minor & ~0xff)) << 12)
diff --git a/sysdeps/x86_64/bits/atomic.h b/sysdeps/x86_64/bits/atomic.h
index f31bedb0b3..133a68d192 100644
--- a/sysdeps/x86_64/bits/atomic.h
+++ b/sysdeps/x86_64/bits/atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -319,3 +319,6 @@ typedef uintmax_t uatomic_max_t;
 			 : "=q" (__result), "=m" (*mem)			      \
 			 : "m" (*mem), "ir" (bit));			      \
      __result; })
+
+
+#define atomic_delay() asm ("rep; nop")
diff --git a/sysdeps/x86_64/fpu/bits/mathinline.h b/sysdeps/x86_64/fpu/bits/mathinline.h
index 3f61ff5e92..39d11b678d 100644
--- a/sysdeps/x86_64/fpu/bits/mathinline.h
+++ b/sysdeps/x86_64/fpu/bits/mathinline.h
@@ -1,5 +1,5 @@
 /* Inline math functions for x86-64.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 2002.
 
@@ -33,19 +33,19 @@
 
 /* Test for negative number.  Used in the signbit() macro.  */
 __MATH_INLINE int
-__signbitf (float __x) __THROW
+__NTH (__signbitf (float __x))
 {
   __extension__ union { float __f; int __i; } __u = { __f: __x };
   return __u.__i < 0;
 }
 __MATH_INLINE int
-__signbit (double __x) __THROW
+__NTH (__signbit (double __x))
 {
   __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
   return __u.__i[1] < 0;
 }
 __MATH_INLINE int
-__signbitl (long double __x) __THROW
+__NTH (__signbitl (long double __x))
 {
   __extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
   return (__u.__i[2] & 0x8000) != 0;