summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--m4/ceil.m48
-rw-r--r--m4/floor.m48
-rw-r--r--m4/trunc.m48
-rw-r--r--m4/truncf.m48
-rw-r--r--m4/truncl.m48
6 files changed, 39 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index ecd69df04f..7ee522b528 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2018-10-14 Bruno Haible <bruno@clisp.org>
+
+ floor, ceil, trunc, truncf, truncl: Defeat GCC optimizations.
+ * m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Use 'floor' also through a function
+ pointer.
+ * m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Use 'ceil' also through a function
+ pointer.
+ * m4/trunc.m4 (gl_FUNC_TRUNC): Use 'trunc' also through a function
+ pointer.
+ * m4/truncf.m4 (gl_FUNC_TRUNCF): Use 'truncf' also through a function
+ pointer.
+ * m4/truncl.m4 (gl_FUNC_TRUNCL): Use 'truncl' also through a function
+ pointer.
+
2018-10-13 Akim Demaille <akim@lrde.epita.fr>
bootstrap: fix wget command for po files.
diff --git a/m4/ceil.m4 b/m4/ceil.m4
index 592b3f2ee8..87199ed110 100644
--- a/m4/ceil.m4
+++ b/m4/ceil.m4
@@ -1,4 +1,4 @@
-# ceil.m4 serial 11
+# ceil.m4 serial 12
dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -81,8 +81,9 @@ AC_DEFUN([gl_FUNC_CEIL_LIBS],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ double (*funcptr) (double) = ceil;
double x;]],
- [[x = ceil(x);]])],
+ [[x = funcptr(x) + ceil(x);]])],
[gl_cv_func_ceil_libm=])
if test "$gl_cv_func_ceil_libm" = "?"; then
save_LIBS="$LIBS"
@@ -93,8 +94,9 @@ AC_DEFUN([gl_FUNC_CEIL_LIBS],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ double (*funcptr) (double) = ceil;
double x;]],
- [[x = ceil(x);]])],
+ [[x = funcptr(x) + ceil(x);]])],
[gl_cv_func_ceil_libm="-lm"])
LIBS="$save_LIBS"
fi
diff --git a/m4/floor.m4 b/m4/floor.m4
index 15fa84d2b1..bef45a1e0d 100644
--- a/m4/floor.m4
+++ b/m4/floor.m4
@@ -1,4 +1,4 @@
-# floor.m4 serial 10
+# floor.m4 serial 11
dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -77,8 +77,9 @@ AC_DEFUN([gl_FUNC_FLOOR_LIBS],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ double (*funcptr) (double) = floor;
double x;]],
- [[x = floor(x);]])],
+ [[x = funcptr(x) + floor(x);]])],
[gl_cv_func_floor_libm=])
if test "$gl_cv_func_floor_libm" = "?"; then
save_LIBS="$LIBS"
@@ -89,8 +90,9 @@ AC_DEFUN([gl_FUNC_FLOOR_LIBS],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ double (*funcptr) (double) = floor;
double x;]],
- [[x = floor(x);]])],
+ [[x = funcptr(x) + floor(x);]])],
[gl_cv_func_floor_libm="-lm"])
LIBS="$save_LIBS"
fi
diff --git a/m4/trunc.m4 b/m4/trunc.m4
index 7abb8ecb35..1ff8f19d61 100644
--- a/m4/trunc.m4
+++ b/m4/trunc.m4
@@ -1,4 +1,4 @@
-# trunc.m4 serial 11
+# trunc.m4 serial 12
dnl Copyright (C) 2007, 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -21,8 +21,9 @@ AC_DEFUN([gl_FUNC_TRUNC],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ double (*funcptr) (double) = trunc;
double x;]],
- [[x = trunc(x);]])],
+ [[x = funcptr(x) + trunc(x);]])],
[TRUNC_LIBM=])
if test "$TRUNC_LIBM" = "?"; then
save_LIBS="$LIBS"
@@ -33,8 +34,9 @@ AC_DEFUN([gl_FUNC_TRUNC],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ double (*funcptr) (double) = trunc;
double x;]],
- [[x = trunc(x);]])],
+ [[x = funcptr(x) + trunc(x);]])],
[TRUNC_LIBM="-lm"])
LIBS="$save_LIBS"
fi
diff --git a/m4/truncf.m4 b/m4/truncf.m4
index fb4c5699c4..fdd36ec62b 100644
--- a/m4/truncf.m4
+++ b/m4/truncf.m4
@@ -1,4 +1,4 @@
-# truncf.m4 serial 11
+# truncf.m4 serial 12
dnl Copyright (C) 2007, 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -21,8 +21,9 @@ AC_DEFUN([gl_FUNC_TRUNCF],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ float (*funcptr) (float) = truncf;
float x;]],
- [[x = truncf(x);]])],
+ [[x = funcptr(x) + truncf(x);]])],
[TRUNCF_LIBM=])
if test "$TRUNCF_LIBM" = "?"; then
save_LIBS="$LIBS"
@@ -33,8 +34,9 @@ AC_DEFUN([gl_FUNC_TRUNCF],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ float (*funcptr) (float) = truncf;
float x;]],
- [[x = truncf(x);]])],
+ [[x = funcptr(x) + truncf(x);]])],
[TRUNCF_LIBM="-lm"])
LIBS="$save_LIBS"
fi
diff --git a/m4/truncl.m4 b/m4/truncl.m4
index 39ed3c4ffa..14be186700 100644
--- a/m4/truncl.m4
+++ b/m4/truncl.m4
@@ -1,4 +1,4 @@
-# truncl.m4 serial 13
+# truncl.m4 serial 14
dnl Copyright (C) 2007-2008, 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -25,8 +25,9 @@ AC_DEFUN([gl_FUNC_TRUNCL],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ long double (*funcptr) (long double) = truncl;
long double x;]],
- [[x = truncl(x);]])],
+ [[x = funcptr(x) + truncl(x);]])],
[TRUNCL_LIBM=])
if test "$TRUNCL_LIBM" = "?"; then
save_LIBS="$LIBS"
@@ -37,8 +38,9 @@ AC_DEFUN([gl_FUNC_TRUNCL],
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
+ long double (*funcptr) (long double) = truncl;
long double x;]],
- [[x = truncl(x);]])],
+ [[x = funcptr(x) + truncl(x);]])],
[TRUNCL_LIBM="-lm"])
LIBS="$save_LIBS"
fi