aboutsummaryrefslogtreecommitdiff
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
glibc-caa6c9d8454e81d365f039c835abd3cb54c06a05.tar.gz
glibc-caa6c9d8454e81d365f039c835abd3cb54c06a05.tar.bz2
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