summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2017-11-28 15:41:17 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2017-11-28 15:41:17 +0000
commitdca0ca477f1173b9c20e77c0672e1d061a899959 (patch)
treef8868b6b5b8073478be08ad1b0f41b34903e686d
parente1c1a450f1dd46584ea913e4f90ee803a25b8cc3 (diff)
downloadmpfr-dca0ca477f1173b9c20e77c0672e1d061a899959.tar.gz
Got rid of the useless SIZE_MAX macro.
* src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used in some other files. * acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4). * Removed m4/size_max.m4 as it is no longer needed (note that the definition of SIZE_MAX by this file was unnecessarily complex and potentially incorrect on some platforms). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@11852 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--acinclude.m43
-rw-r--r--m4/size_max.m473
-rw-r--r--src/vasprintf.c13
3 files changed, 6 insertions, 83 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 01e01e666..dbb099e42 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -69,9 +69,6 @@ AC_CHECK_MEMBERS([struct lconv.decimal_point, struct lconv.thousands_sep],,,
dnl Check how to get `alloca'
AC_FUNC_ALLOCA
-dnl SIZE_MAX macro
-gl_SIZE_MAX
-
dnl va_copy macro
AC_MSG_CHECKING([how to copy va_list])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
diff --git a/m4/size_max.m4 b/m4/size_max.m4
deleted file mode 100644
index aa16e1a12..000000000
--- a/m4/size_max.m4
+++ /dev/null
@@ -1,73 +0,0 @@
-# size_max.m4 serial 6
-dnl Copyright (C) 2003, 2005-2006, 2010, 2012 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Change by Vincent Lefevre: added <inttypes.h> for consistency with MPFR
-dnl Update with autoupdate.
-
-AC_DEFUN([gl_SIZE_MAX],
-[
- AC_CHECK_HEADERS(stdint.h)
- dnl First test whether the system already has SIZE_MAX.
- AC_MSG_CHECKING([for SIZE_MAX])
- AC_CACHE_VAL([gl_cv_size_max], [
- gl_cv_size_max=
- AC_EGREP_CPP([Found it], [
-#include <limits.h>
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#if HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
-], gl_cv_size_max=yes)
- if test -z "$gl_cv_size_max"; then
- dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
- dnl than the type 'unsigned long'. Try hard to find a definition that can
- dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
- AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
- [#include <stddef.h>
-#include <limits.h>], size_t_bits_minus_1=)
- AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
- [#include <stddef.h>], fits_in_uint=)
- if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
- if test $fits_in_uint = 1; then
- dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
- dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h>
- extern size_t foo;
- extern unsigned long foo;
- ]], [[]])], fits_in_uint=0)
- fi
- dnl We cannot use 'expr' to simplify this expression, because 'expr'
- dnl works only with 'long' integers in the host environment, while we
- dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
- if test $fits_in_uint = 1; then
- gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
- else
- gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
- fi
- else
- dnl Shouldn't happen, but who knows...
- gl_cv_size_max='((size_t)~(size_t)0)'
- fi
- fi
- ])
- AC_MSG_RESULT([$gl_cv_size_max])
- if test "$gl_cv_size_max" != yes; then
- AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max],
- [Define as the maximum value of type 'size_t', if the system doesn't define it.])
- fi
-])
-
-dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-dnl Remove this when we can assume autoconf >= 2.61.
-m4_ifdef([AC_COMPUTE_INT], [], [
- AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-])
diff --git a/src/vasprintf.c b/src/vasprintf.c
index 9fcc53dd4..3dc40e6cc 100644
--- a/src/vasprintf.c
+++ b/src/vasprintf.c
@@ -36,8 +36,8 @@ http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
/* Note: Due to limitations from the C standard and GMP, if
size_t < unsigned int (which is allowed by the C standard but unlikely
to occur on any platform), the behavior is undefined for output that
- would reach SIZE_MAX (if the result cannot be delivered, there should
- be an assertion failure, but this could not be tested). */
+ would reach SIZE_MAX = (size_t) -1 (if the result cannot be delivered,
+ there should be an assertion failure, but this could not be tested). */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -66,7 +66,6 @@ http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
#if defined (__cplusplus)
#include <cstddef>
-#define __STDC_LIMIT_MACROS /* SIZE_MAX defined with <stdint.h> inclusion */
#else
#include <stddef.h> /* for ptrdiff_t */
#endif
@@ -598,7 +597,7 @@ buffer_widen (struct string_buffer *b, size_t len)
MPFR_ASSERTD (*b->curr == '\0');
MPFR_ASSERTD (pos < b->size);
- MPFR_ASSERTN (b->size < SIZE_MAX - n);
+ MPFR_ASSERTN (b->size < ((size_t) -1) - n);
b->start =
(char *) mpfr_reallocate_func (b->start, b->size, b->size + n);
@@ -623,7 +622,7 @@ buffer_cat (struct string_buffer *b, const char *s, size_t len)
if (b->size != 0)
{
MPFR_ASSERTD (*b->curr == '\0');
- MPFR_ASSERTN (b->size < SIZE_MAX - len);
+ MPFR_ASSERTN (b->size < ((size_t) -1) - len);
if (MPFR_UNLIKELY (b->curr + len >= b->start + b->size))
buffer_widen (b, len);
@@ -651,7 +650,7 @@ buffer_pad (struct string_buffer *b, const char c, const size_t n)
if (b->size != 0)
{
MPFR_ASSERTD (*b->curr == '\0');
- MPFR_ASSERTN (b->size < SIZE_MAX - n);
+ MPFR_ASSERTN (b->size < ((size_t) -1) - n);
if (MPFR_UNLIKELY (b->curr + n >= b->start + b->size))
buffer_widen (b, n);
@@ -700,7 +699,7 @@ buffer_sandwich (struct string_buffer *b, char *str, size_t len,
char *oldcurr;
MPFR_ASSERTD (*b->curr == '\0');
- MPFR_ASSERTN (b->size < SIZE_MAX - fullsize);
+ MPFR_ASSERTN (b->size < ((size_t) -1) - fullsize);
if (MPFR_UNLIKELY (b->curr + fullsize >= b->start + b->size))
buffer_widen (b, fullsize);