]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/i386/fpu/fraiseexcpt.c
Prefer https to http for gnu.org and fsf.org URLs
[thirdparty/glibc.git] / sysdeps / i386 / fpu / fraiseexcpt.c
index d468449873b5cbc4f97cd8c92f2852fddde83774..ec3ed32f1f54ead714be11954932ac7c2e1508f6 100644 (file)
@@ -1,28 +1,27 @@
 /* Raise given exceptions.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997-2019 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
    The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 #include <fenv.h>
 #include <math.h>
 
-void
-feraiseexcept (int excepts)
+int
+__feraiseexcept (int excepts)
 {
   /* Raise exceptions represented by EXPECTS.  But we must raise only
      one signal at a time.  It is important that if the overflow/underflow
@@ -32,7 +31,7 @@ feraiseexcept (int excepts)
   /* First: invalid exception.  */
   if ((FE_INVALID & excepts) != 0)
     {
-      /* One example of a invalid operation is 0.0 / 0.0.  */
+      /* One example of an invalid operation is 0.0 / 0.0.  */
       double d;
       __asm__ __volatile__ ("fldz; fdiv %%st, %%st(0); fwait" : "=t" (d));
       (void) &d;
@@ -59,7 +58,7 @@ feraiseexcept (int excepts)
       __asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
 
       /* Set the relevant bits.  */
-      temp.status_word |= FE_OVERFLOW;
+      temp.__status_word |= FE_OVERFLOW;
 
       /* Put the new data in effect.  */
       __asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
@@ -80,7 +79,7 @@ feraiseexcept (int excepts)
       __asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
 
       /* Set the relevant bits.  */
-      temp.status_word |= FE_UNDERFLOW;
+      temp.__status_word |= FE_UNDERFLOW;
 
       /* Put the new data in effect.  */
       __asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
@@ -101,7 +100,7 @@ feraiseexcept (int excepts)
       __asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
 
       /* Set the relevant bits.  */
-      temp.status_word |= FE_INEXACT;
+      temp.__status_word |= FE_INEXACT;
 
       /* Put the new data in effect.  */
       __asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
@@ -109,4 +108,17 @@ feraiseexcept (int excepts)
       /* And raise the exception.  */
       __asm__ __volatile__ ("fwait");
     }
+
+  /* Success.  */
+  return 0;
 }
+
+#include <shlib-compat.h>
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__feraiseexcept, __old_feraiseexcept)
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+#endif
+
+libm_hidden_def (__feraiseexcept)
+libm_hidden_ver (__feraiseexcept, feraiseexcept)
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);