]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fpu-387.h, [...]: Use static assertions.
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 7 Jul 2014 07:47:41 +0000 (07:47 +0000)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 7 Jul 2014 07:47:41 +0000 (07:47 +0000)
* config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
config/fpu-glibc.h: Use static assertions.

From-SVN: r212323

libgfortran/ChangeLog
libgfortran/config/fpu-387.h
libgfortran/config/fpu-aix.h
libgfortran/config/fpu-glibc.h
libgfortran/config/fpu-sysv.h

index 9f03a5ce36813a813e50f07f66bbe3c5acafdb5a..03f6f2ac60afaacf0e8774b2d27ffa8117c1be07 100644 (file)
@@ -1,3 +1,8 @@
+2014-07-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
+       config/fpu-glibc.h: Use static assertions.
+
 2014-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * configure, config.h.in: Regenerate.
index 66e2dbeecea7335d5e36ffbafe5b117c3e527d60..2c5a5fcc6fa71af8f52ffda5de5141c9e1ef90d2 100644 (file)
@@ -23,8 +23,6 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-#include <assert.h>
-
 #ifndef __SSE_MATH__
 #include "cpuid.h"
 #endif
@@ -85,6 +83,11 @@ typedef struct
 my_fenv_t;
 
 
+/* Check we can actually store the FPU state in the allocated size.  */
+_Static_assert (sizeof(my_fenv_t) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE,
+               "GFC_FPE_STATE_BUFFER_SIZE is too small");
+
+
 /* Raise the supported floating-point exceptions from EXCEPTS.  Other
    bits in EXCEPTS are ignored.  Code originally borrowed from
    libatomic/config/x86/fenv.c.  */
@@ -429,9 +432,6 @@ get_fpu_state (void *state)
 {
   my_fenv_t *envp = state;
 
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(my_fenv_t) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE);
-
   __asm__ __volatile__ ("fnstenv\t%0" : "=m" (*envp));
 
   /* fnstenv has the side effect of masking all exceptions, so we need
@@ -447,9 +447,6 @@ set_fpu_state (void *state)
 {
   my_fenv_t *envp = state;
 
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(my_fenv_t) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE);
-
   /* glibc sources (sysdeps/x86_64/fpu/fesetenv.c) do something more
      complex than this, but I think it suffices in our case.  */
   __asm__ __volatile__ ("fldenv\t%0" : : "m" (*envp));
index c1079fcc1a3bf735ca3456567db45f0d8c6ad433..c2970452bc13e05801489a584c398b549149b527 100644 (file)
@@ -38,6 +38,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #endif
 
 
+/* Check we can actually store the FPU state in the allocated size.  */
+_Static_assert (sizeof(fenv_t) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE,
+               "GFC_FPE_STATE_BUFFER_SIZE is too small");
+
+
 void
 set_fpu_trap_exceptions (int trap, int notrap)
 {
@@ -403,18 +408,12 @@ support_fpu_rounding_mode (int mode)
 void
 get_fpu_state (void *state)
 {
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(fenv_t) <= GFC_FPE_STATE_BUFFER_SIZE);
-
   fegetenv (state);
 }
 
 void
 set_fpu_state (void *state)
 {
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(fenv_t) <= GFC_FPE_STATE_BUFFER_SIZE);
-
   fesetenv (state);
 }
 
index d7c9d86da431c8bd2675eb4672af77a5c36b7579..b6ea1203a6264eccbf348631939e6c58889213fb 100644 (file)
@@ -27,13 +27,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    feenableexcept function in fenv.h to set individual exceptions
    (there's nothing to do that in C99).  */
 
-#include <assert.h>
-
 #ifdef HAVE_FENV_H
 #include <fenv.h>
 #endif
 
 
+/* Check we can actually store the FPU state in the allocated size.  */
+_Static_assert (sizeof(fenv_t) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE,
+               "GFC_FPE_STATE_BUFFER_SIZE is too small");
+
+
 void set_fpu_trap_exceptions (int trap, int notrap)
 {
 #ifdef FE_INVALID
@@ -416,9 +419,6 @@ support_fpu_rounding_mode (int mode)
 void
 get_fpu_state (void *state)
 {
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(fenv_t) <= GFC_FPE_STATE_BUFFER_SIZE);
-
   fegetenv (state);
 }
 
@@ -426,9 +426,6 @@ get_fpu_state (void *state)
 void
 set_fpu_state (void *state)
 {
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(fenv_t) <= GFC_FPE_STATE_BUFFER_SIZE);
-
   fesetenv (state);
 }
 
index 8d8ff329f1fb515c93f8dfdc949be90c1b4e900d..97eed2833c68c223bf431ac631178dddb3742e86 100644 (file)
@@ -25,8 +25,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 /* FPU-related code for SysV platforms with fpsetmask().  */
 
-#include <assert.h>
-
 /* BSD and Solaris systems have slightly different types and functions
    naming.  We deal with these here, to simplify the code below.  */
 
@@ -444,14 +442,16 @@ typedef struct
 } fpu_state_t;
 
 
+/* Check we can actually store the FPU state in the allocated size.  */
+_Static_assert (sizeof(fpu_state_t) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE,
+               "GFC_FPE_STATE_BUFFER_SIZE is too small");
+
+
 void
 get_fpu_state (void *s)
 {
   fpu_state_t *state = s;
 
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(fpu_state_t) <= GFC_FPE_STATE_BUFFER_SIZE);
-
   state->mask = fpgetmask ();
   state->sticky = fpgetsticky ();
   state->round = fpgetround ();
@@ -462,9 +462,6 @@ set_fpu_state (void *s)
 {
   fpu_state_t *state = s;
 
-  /* Check we can actually store the FPU state in the allocated size.  */
-  assert (sizeof(fpu_state_t) <= GFC_FPE_STATE_BUFFER_SIZE);
-
   fpsetmask (state->mask);
   FPSETSTICKY (state->sticky);
   fpsetround (state->round);