diff lib/round.c @ 16506:fa4e9b981eb4

Avoid compilation errors with MSVC option -fp:strict. * lib/floor.c: Use MSVC specific pragma fenv_access. * lib/ceil.c: Likewise. * lib/trunc.c: Likewise. * lib/round.c: Likewise. * lib/rint.c: Likewise. * lib/fma.c: Likewise. * lib/integer_length.c: Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * tests/test-floor2.c: Likewise. * tests/test-floorf2.c: Likewise. * tests/test-ceil2.c: Likewise. * tests/test-ceilf2.c: Likewise. * tests/test-trunc2.c: Likewise. * tests/test-truncf2.c: Likewise. Reported by Michael Goffioul <michael.goffioul@gmail.com>.
author Bruno Haible <bruno@clisp.org>
date Tue, 28 Feb 2012 11:50:03 +0100 (2012-02-28)
parents bb182ee4a09d
children e542fd46ad6f
line wrap: on
line diff
--- a/lib/round.c
+++ b/lib/round.c
@@ -64,6 +64,12 @@
 # define MINUS_ZERO L_(-0.0)
 #endif
 
+/* MSVC with option -fp:strict refuses to compile constant initializers that
+   contain floating-point operations.  Pacify this compiler.  */
+#ifdef _MSC_VER
+# pragma fenv_access (off)
+#endif
+
 /* If we're being included from test-round2[f].c, it already defined names for
    our round implementations.  Otherwise, pick the preferred implementation for
    this machine. */