diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-11-28 15:41:17 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-11-28 15:41:17 +0000 |
commit | dca0ca477f1173b9c20e77c0672e1d061a899959 (patch) | |
tree | f8868b6b5b8073478be08ad1b0f41b34903e686d | |
parent | e1c1a450f1dd46584ea913e4f90ee803a25b8cc3 (diff) | |
download | mpfr-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.m4 | 3 | ||||
-rw-r--r-- | m4/size_max.m4 | 73 | ||||
-rw-r--r-- | src/vasprintf.c | 13 |
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); |