about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2011-10-18 10:37:56 +0200
committerAndreas Schwab <schwab@redhat.com>2011-10-18 11:46:51 +0200
commitcaa6c9d8454e81d365f039c835abd3cb54c06a05 (patch)
treea10ddea30a305d86262fff03a67c47ded647f9b1
parent99ce7b04edf17821a6abd19844f10e8c1cd3c724 (diff)
downloadglibc-caa6c9d8454e81d365f039c835abd3cb54c06a05.tar.gz
glibc-caa6c9d8454e81d365f039c835abd3cb54c06a05.tar.xz
glibc-caa6c9d8454e81d365f039c835abd3cb54c06a05.zip
Fix linkage conflict with feraiseexcept
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/x86_64/fpu/bits/fenv.h16
2 files changed, 17 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index ad7db01db6..cd6264b7f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-10-18  Andreas Schwab  <schwab@redhat.com>
+
+	* sysdeps/x86_64/fpu/bits/fenv.h: Add C linkage markers.
+	(__feraiseexcept_renamed): Add __THROW.
+	(feraiseexcept): Add __THROW.  Rename local variables to fix
+	namespace violations.
+
 2011-10-17  Ulrich Drepper  <drepper@gmail.com>
 
 	* sysdeps/ieee754/dbl-64/e_exp2.c (__ieee754_exp2): Small optimization.
diff --git a/sysdeps/x86_64/fpu/bits/fenv.h b/sysdeps/x86_64/fpu/bits/fenv.h
index be2518dac3..b344d0a82c 100644
--- a/sysdeps/x86_64/fpu/bits/fenv.h
+++ b/sysdeps/x86_64/fpu/bits/fenv.h
@@ -98,9 +98,11 @@ fenv_t;
 
 
 #ifdef __OPTIMIZE__
+__BEGIN_DECLS
+
 /* Optimized versions.  */
-extern int __feraiseexcept_renamed (int) __asm__ ("feraiseexcept");
-__extern_inline int feraiseexcept (int __excepts)
+extern int __feraiseexcept_renamed (int) __THROW __asm__ ("feraiseexcept");
+__extern_inline int feraiseexcept (int __excepts) __THROW
 {
   if (__builtin_constant_p (__excepts)
       && (__excepts & ~(FE_INVALID | FE_DIVBYZERO)) == 0)
@@ -115,11 +117,11 @@ __extern_inline int feraiseexcept (int __excepts)
 	}
       if ((FE_DIVBYZERO & __excepts) != 0)
 	{
-	  float f = 1.0;
-	  float g = 0.0;
+	  float __f = 1.0;
+	  float __g = 0.0;
 
-	  __asm__ __volatile__ ("divss %1, %0" : : "x" (f), "x" (g));
-	  (void) &f;
+	  __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g));
+	  (void) &__f;
 	}
 
       return 0;
@@ -127,4 +129,6 @@ __extern_inline int feraiseexcept (int __excepts)
 
   return __feraiseexcept_renamed (__excepts);
 }
+
+__END_DECLS
 #endif