* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_EXPF.
* m4/expf.m4 (gl_FUNC_EXPF): Set REPLACE_EXPF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_EXPF.
* lib/math.in.h (expf): Override if REPLACE_EXPF is 1.
+2016-12-17 Bruno Haible <bruno@clisp.org>
+
+ expf: Avoid redefinition error on MSVC.
+ * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_EXPF.
+ * m4/expf.m4 (gl_FUNC_EXPF): Set REPLACE_EXPF to 1 if the function
+ may be defined as an inline function.
+ * modules/math (Makefile.am): Substitute REPLACE_EXPF.
+ * lib/math.in.h (expf): Override if REPLACE_EXPF is 1.
+
2016-12-17 Bruno Haible <bruno@clisp.org>
coshf: Avoid redefinition error on MSVC.
#if @GNULIB_EXPF@
-# if !@HAVE_EXPF@
-# undef expf
+# if @REPLACE_EXPF@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef expf
+# define expf rpl_expf
+# endif
+_GL_FUNCDECL_RPL (expf, float, (float x));
+_GL_CXXALIAS_RPL (expf, float, (float x));
+# else
+# if !@HAVE_EXPF@
+# undef expf
_GL_FUNCDECL_SYS (expf, float, (float x));
-# endif
+# endif
_GL_CXXALIAS_SYS (expf, float, (float x));
+# endif
_GL_CXXALIASWARN (expf);
#elif defined GNULIB_POSIXCHECK
# undef expf
-# expf.m4 serial 2
+# expf.m4 serial 3
dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
EXPF_LIBM="$EXP_LIBM"
else
HAVE_EXPF=0
+ dnl If the function is declared but does not appear to exist, it may be
+ dnl defined as an inline function. In order to avoid a conflict, we have
+ dnl to define rpl_expf, not expf.
+ AC_CHECK_DECLS([expf], [REPLACE_EXPF=1], , [[#include <math.h>]])
EXPF_LIBM="$EXP_LIBM"
fi
AC_SUBST([EXPF_LIBM])
REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
REPLACE_COSF=0; AC_SUBST([REPLACE_COSF])
REPLACE_COSHF=0; AC_SUBST([REPLACE_COSHF])
+ REPLACE_EXPF=0; AC_SUBST([REPLACE_EXPF])
REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1])
REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F])
REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2])
-e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
-e 's|@''REPLACE_COSF''@|$(REPLACE_COSF)|g' \
-e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \
+ -e 's|@''REPLACE_EXPF''@|$(REPLACE_EXPF)|g' \
-e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
-e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
-e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \