[BACK]Return to t-gmpmax.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / tests

Annotation of OpenXM_contrib/gmp/tests/t-gmpmax.c, Revision 1.1.1.1

1.1       ohara       1: /* Check the values of __GMP_UINT_MAX etc.
                      2:
                      3: Copyright 2001 Free Software Foundation, Inc.
                      4:
                      5: This file is part of the GNU MP Library.
                      6:
                      7: The GNU MP Library is free software; you can redistribute it and/or modify
                      8: it under the terms of the GNU Lesser General Public License as published by
                      9: the Free Software Foundation; either version 2.1 of the License, or (at your
                     10: option) any later version.
                     11:
                     12: The GNU MP Library is distributed in the hope that it will be useful, but
                     13: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     14: or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
                     15: License for more details.
                     16:
                     17: You should have received a copy of the GNU Lesser General Public License
                     18: along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
                     19: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
                     20: MA 02111-1307, USA. */
                     21:
                     22: #include <stdio.h>
                     23: #include <stdlib.h>
                     24: #include <limits.h>
                     25: #include "gmp.h"
                     26:
                     27:
                     28: /* __GMP_UINT_MAX etc are generated with expressions in gmp.h since we don't
                     29:    want to demand <limits.h> or forcibly include it.  Check the expressions
                     30:    come out the same as <limits.h>.  */
                     31:
                     32: int
                     33: main (int argc, char *argv[])
                     34: {
                     35:   int  error = 0;
                     36:
                     37: #ifdef UINT_MAX
                     38:   if (__GMP_UINT_MAX != UINT_MAX)
                     39:     {
                     40:       printf ("__GMP_UINT_MAX incorrect\n");
                     41:       printf ("  __GMP_UINT_MAX  %u  0x%X\n", __GMP_UINT_MAX, __GMP_UINT_MAX);
                     42:       printf ("  UINT_MAX        %u  0x%X\n", UINT_MAX, UINT_MAX);
                     43:       error = 1;
                     44:     }
                     45: #endif
                     46:
                     47:   /* gcc 2.95.2 limits.h on solaris 2.5.1 incorrectly selects a 64-bit
                     48:      LONG_MAX, leading to some integer overflow in ULONG_MAX and a spurious
                     49:      __GMP_ULONG_MAX != ULONG_MAX.  Casting ULONG_MAX to unsigned long is a
                     50:      workaround.  */
                     51: #ifdef ULONG_MAX
                     52:   if (__GMP_ULONG_MAX != (unsigned long) ULONG_MAX)
                     53:     {
                     54:       printf ("__GMP_ULONG_MAX incorrect\n");
                     55:       printf ("  __GMP_ULONG_MAX  %lu  0x%lX\n", __GMP_ULONG_MAX, __GMP_ULONG_MAX);
                     56:       printf ("  ULONG_MAX        %lu  0x%lX\n", ULONG_MAX, ULONG_MAX);
                     57:       error = 1;
                     58:     }
                     59: #endif
                     60:
                     61: #ifdef USHRT_MAX
                     62:   if (__GMP_USHRT_MAX != USHRT_MAX)
                     63:     {
                     64:       printf ("__GMP_USHRT_MAX incorrect\n");
                     65:       printf ("  __GMP_USHRT_MAX  %hu  0x%hX\n", __GMP_USHRT_MAX, __GMP_USHRT_MAX);
                     66:       printf ("  USHRT_MAX        %hu  0x%hX\n", USHRT_MAX, USHRT_MAX);
                     67:       error = 1;
                     68:     }
                     69: #endif
                     70:
                     71:   if (error)
                     72:     abort ();
                     73:
                     74:   exit (0);
                     75: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>