summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-23 15:24:59 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-23 15:24:59 +0000
commitd5fd2f1ecc3202bbec70525e6189e797e010ad6f (patch)
tree603c06b3614bf302a519b7e5b36cfb53c5fb9675 /acinclude.m4
parentcf12e58541e89a9d904cab195b9dd7fc88161766 (diff)
downloadmpfr-d5fd2f1ecc3202bbec70525e6189e797e010ad6f.tar.gz
[configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB
[src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1 git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12426 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m427
1 files changed, 27 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index f9792f836..6a91bd214 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -843,6 +843,33 @@ esac
CPPFLAGS="$saved_CPPFLAGS"
])
+dnl MPFR_CHECK_MP_LIMB_T_VS_INTMAX
+dnl ------------------------------
+dnl Check that an intmax_t can fit in a mp_limb_t.
+AC_DEFUN([MPFR_CHECK_MP_LIMB_T_VS_INTMAX], [
+AC_REQUIRE([MPFR_CONFIGS])
+AC_CACHE_CHECK([for intmax_t to fit in mp_limb_t], mpfr_cv_intmax_within_limb, [
+saved_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -I$srcdir/src"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <gmp.h>
+#include "mpfr-intmax.h"
+]], [[
+ MPFR_STAT_STATIC_ASSERT ((mp_limb_t) -1 >= (intmax_t) -1);
+ return 0;
+]])], [mpfr_cv_intmax_within_limb="yes"],
+ [mpfr_cv_intmax_within_limb="no"],
+ [mpfr_cv_intmax_within_limb="cannot test, assume yes"])
+])
+case $mpfr_cv_intmax_within_limb in
+yes*)
+ AC_DEFINE([MPFR_INTMAX_WITHIN_LIMB],1,[intmax_t can be stored in mp_limb_t]) ;;
+cannot*)
+ AC_DEFINE([MPFR_INTMAX_WITHIN_LIMB],1,[intmax_t can be stored in mp_limb_t]) ;;
+esac
+CPPFLAGS="$saved_CPPFLAGS"
+])
+
dnl MPFR_PARSE_DIRECTORY
dnl Input: $1 = a string to a relative or absolute directory
dnl Output: $2 = the variable to set with the absolute directory