Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Unified Diff: gcc/gmp/tests/t-constants.c

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gmp/tests/t-bswap.c ('k') | gcc/gmp/tests/t-gmpmax.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gmp/tests/t-constants.c
diff --git a/gcc/gmp/tests/t-constants.c b/gcc/gmp/tests/t-constants.c
deleted file mode 100644
index ef63c09c99dc40a9e7aa5d1c779d853df1db16be..0000000000000000000000000000000000000000
--- a/gcc/gmp/tests/t-constants.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/* Check the values of some constants.
-
-Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "gmp.h"
-#include "tests.h"
-
-
-#ifdef ULONG_MAX
-char *ulong_max_def = "defined";
-#else
-char *ulong_max_def = "not defined";
-#endif
-#ifdef LONG_MAX
-char *long_max_def = "defined";
-#else
-char *long_max_def = "not defined";
-#endif
-
-#ifdef UINT_MAX
-char *uint_max_def = "defined";
-#else
-char *uint_max_def = "not defined";
-#endif
-#ifdef INT_MAX
-char *int_max_def = "defined";
-#else
-char *int_max_def = "not defined";
-#endif
-
-#ifdef USHRT_MAX
-char *ushrt_max_def = "defined";
-#else
-char *ushrt_max_def = "not defined";
-#endif
-#ifdef SHRT_MAX
-char *shrt_max_def = "defined";
-#else
-char *shrt_max_def = "not defined";
-#endif
-
-#include "gmp-impl.h"
-#include "longlong.h"
-
-
-#ifdef _LONG_LONG_LIMB
-#define LL(l,ll) ll
-#else
-#define LL(l,ll) l
-#endif
-
-#if __GMP_MP_SIZE_T_INT
-#define SS(i,l) i
-#else
-#define SS(i,l) l
-#endif
-
-
-#define CHECK_LIMB_S(x, xname, y, yname) \
- do { \
- if ((x) != (y)) \
- { \
- printf (LL("%s == %lx, but %s == %lx\n", \
- "%s == %llx, but %s == %llx\n"), \
- xname, x, yname, y); \
- error = 1; \
- } \
- } while (0)
-
-#define CHECK_INT_S(x, xname, y, yname) \
- do { \
- if ((x) != (y)) \
- { \
- printf ("%s == %d, but %s == %d\n", xname, x, yname, y); \
- error = 1; \
- } \
- } while (0)
-
-
-
-#define CHECK_CONDITION_S(x, xname) \
- do { \
- if (!(x)) \
- { \
- printf ("%s is false\n", xname); \
- error = 1; \
- } \
- } while (0)
-
-
-/* How many bits seem to work in the given type. */
-#define CALC_BITS(result, type) \
- do { \
- type n = 1; \
- result = 0; \
- while (n != 0) \
- { \
- n <<= 1; \
- result++; \
- } \
- } while (0)
-
-#define CHECK_BITS_S(constant, constant_name, type) \
- do { \
- int calculated; \
- CALC_BITS (calculated, type); \
- if (calculated != constant) \
- { \
- printf ("%s == %d, but calculated %d\n", \
- constant_name, constant, calculated); \
- error = 1; \
- } \
- } while (0)
-
-
-#define CHECK_HIGHBIT_S(value, value_name, type, format) \
- do { \
- type n = value; \
- if (n == 0) \
- { \
- printf ("%s == 0\n", value_name); \
- error = 1; \
- } \
- n <<= 1; \
- if (n != 0) \
- { \
- printf ("%s << 1 = ", value_name); \
- printf (format, n); \
- printf (" != 0\n"); \
- error = 1; \
- } \
- } while (0)
-
-
-#define CHECK_MAX_S(max_val, max_name, min_val, min_name, type, format) \
- do { \
- type maxval = max_val; \
- type minval = min_val; \
- type n = maxval; \
- n++; \
- if (n != minval) \
- { \
- printf ("%s + 1 = ", max_name); \
- printf (format, n); \
- printf (" != %s = ", min_name); \
- printf (format, minval); \
- printf ("\n"); \
- error = 1; \
- } \
- if (maxval <= minval) \
- { \
- printf ("%s = ", max_name); \
- printf (format, maxval); \
- printf (" <= %s = ", min_name); \
- printf (format, minval); \
- printf ("\n"); \
- error = 1; \
- } \
- } while (0)
-
-
-#if HAVE_STRINGIZE
-#define CHECK_LIMB(x,y) CHECK_LIMB_S (x, #x, y, #y)
-#define CHECK_INT(x,y) CHECK_INT_S (x, #x, y, #y)
-#define CHECK_CONDITION(x) CHECK_CONDITION_S (x, #x)
-#define CHECK_BITS(c,t) CHECK_BITS_S (c, #c, t)
-#define CHECK_MAX(m,n,t,f) CHECK_MAX_S (m, #m, n, #n, t, f)
-#define CHECK_HIGHBIT(n,t,f) CHECK_HIGHBIT_S (n, #n, t, f)
-#else
-#define CHECK_LIMB(x,y) CHECK_LIMB_S (x, "x", y, "y")
-#define CHECK_INT(x,y) CHECK_INT_S (x, "x", y, "y")
-#define CHECK_CONDITION(x) CHECK_CONDITION_S (x, "x")
-#define CHECK_BITS(c,t) CHECK_BITS_S (c, "c", t)
-#define CHECK_MAX(m,n,t,f) CHECK_MAX_S (m, "m", n, "n", t, f)
-#define CHECK_HIGHBIT(n,t,f) CHECK_HIGHBIT_S (n, "n", t, f)
-#endif
-
-
-/* The tests below marked "Bad!" fail on Cray T90 systems, where int, short
- and mp_size_t are 48 bits or some such but don't wraparound in a plain
- twos complement fashion. In particular,
-
- INT_HIGHBIT << 1 = 0xFFFFC00000000000 != 0
- INT_MAX + 1 = 35184372088832 != INT_MIN = -35184372088832
-
- This is a bit bizarre, but doesn't matter because GMP doesn't rely on any
- particular overflow behaviour for int or short, only for mp_limb_t. */
-
-int
-main (int argc, char *argv[])
-{
- int error = 0;
-
- CHECK_INT (BYTES_PER_MP_LIMB, (int) sizeof(mp_limb_t));
- CHECK_INT (mp_bits_per_limb, BITS_PER_MP_LIMB);
- CHECK_INT (__GMP_BITS_PER_MP_LIMB, BITS_PER_MP_LIMB);
-
- CHECK_BITS (BITS_PER_MP_LIMB, mp_limb_t);
- CHECK_BITS (BITS_PER_ULONG, unsigned long);
-
- CHECK_HIGHBIT (GMP_LIMB_HIGHBIT, mp_limb_t, LL("0x%lX","0x%llX"));
- CHECK_HIGHBIT (ULONG_HIGHBIT, unsigned long, "0x%lX");
- CHECK_HIGHBIT (UINT_HIGHBIT, unsigned int, "0x%X");
- CHECK_HIGHBIT (USHRT_HIGHBIT, unsigned short, "0x%hX");
- CHECK_HIGHBIT (LONG_HIGHBIT, long, "0x%lX");
-#if 0 /* Bad! */
- CHECK_HIGHBIT (INT_HIGHBIT, int, "0x%X");
- CHECK_HIGHBIT (SHRT_HIGHBIT, short, "0x%hX");
-#endif
-
-#if 0 /* Bad! */
- CHECK_MAX (LONG_MAX, LONG_MIN, long, "%ld");
- CHECK_MAX (INT_MAX, INT_MIN, int, "%d");
- CHECK_MAX (SHRT_MAX, SHRT_MIN, short, "%hd");
-#endif
- CHECK_MAX (ULONG_MAX, 0, unsigned long, "%lu");
- CHECK_MAX (UINT_MAX, 0, unsigned int, "%u");
- CHECK_MAX (USHRT_MAX, 0, unsigned short, "%hu");
-#if 0 /* Bad! */
- CHECK_MAX (MP_SIZE_T_MAX, MP_SIZE_T_MIN, mp_size_t, SS("%d","%ld"));
-#endif
-
- /* UHWtype should have at least enough bits for half a UWtype */
- {
- int bits_per_UWtype, bits_per_UHWtype;
- CALC_BITS (bits_per_UWtype, UWtype);
- CALC_BITS (bits_per_UHWtype, UHWtype);
- CHECK_CONDITION (2*bits_per_UHWtype >= bits_per_UWtype);
- }
-
- ASSERT_ALWAYS_LIMB (MODLIMB_INVERSE_3);
- {
- mp_limb_t modlimb_inverse_3_calc;
- binvert_limb (modlimb_inverse_3_calc, CNST_LIMB(3));
- ASSERT_ALWAYS_LIMB (modlimb_inverse_3_calc);
- CHECK_LIMB (MODLIMB_INVERSE_3, modlimb_inverse_3_calc);
- }
- {
- mp_limb_t MODLIMB_INVERSE_3_times_3
- = (MODLIMB_INVERSE_3 * CNST_LIMB(3)) & GMP_NUMB_MASK;
- CHECK_LIMB (MODLIMB_INVERSE_3_times_3, CNST_LIMB(1));
- }
-
- {
- mp_limb_t hi, lo;
- hi = refmpn_umul_ppmm (&lo, GMP_NUMB_CEIL_MAX_DIV3-1,
- CNST_LIMB(3) << GMP_NAIL_BITS);
- if (! (hi < 1))
- {
- printf ("GMP_NUMB_CEIL_MAX_DIV3 too big\n");
- error = 1;
- }
- hi = refmpn_umul_ppmm (&lo, GMP_NUMB_CEIL_MAX_DIV3,
- CNST_LIMB(3) << GMP_NAIL_BITS);
- if (! (hi >= 1))
- {
- printf ("GMP_NUMB_CEIL_MAX_DIV3 too small\n");
- error = 1;
- }
- }
-
- {
- mp_limb_t hi, lo;
- hi = refmpn_umul_ppmm (&lo, GMP_NUMB_CEIL_2MAX_DIV3-1,
- CNST_LIMB(3) << GMP_NAIL_BITS);
- if (! (hi < 2))
- {
- printf ("GMP_NUMB_CEIL_2MAX_DIV3 too big\n");
- error = 1;
- }
- hi = refmpn_umul_ppmm (&lo, GMP_NUMB_CEIL_2MAX_DIV3,
- CNST_LIMB(3) << GMP_NAIL_BITS);
- if (! (hi >= 2))
- {
- printf ("GMP_NUMB_CEIL_2MAX_DIV3 too small\n");
- error = 1;
- }
- }
-
-#ifdef PP_INVERTED
- {
- mp_limb_t pp_inverted_calc;
- invert_limb (pp_inverted_calc, PP);
- CHECK_LIMB (PP_INVERTED, pp_inverted_calc);
- }
-#endif
-
- if (argc >= 2 || error)
- {
- int bits;
-
- printf ("\n");
- printf ("After gmp.h,\n");
- printf (" ULONG_MAX %s\n", ulong_max_def);
- printf (" LONG_MAX %s\n", long_max_def);
- printf (" UINT_MAX %s\n", uint_max_def);
- printf (" INT_MAX %s\n", int_max_def);
- printf (" USHRT_MAX %s\n", ushrt_max_def);
- printf (" SHRT_MAX %s\n", shrt_max_def);
- printf ("\n");
-
-#ifdef _CRAY
- printf ("_CRAY is defined, so limits.h is being used\n");
-#endif
-
- printf ("ULONG_MAX %lX\n", ULONG_MAX);
- printf ("ULONG_HIGHBIT %lX\n", ULONG_HIGHBIT);
- printf ("LONG_MAX %lX\n", LONG_MAX);
- printf ("LONG_MIN %lX\n", LONG_MIN);
-
- printf ("UINT_MAX %X\n", UINT_MAX);
- printf ("UINT_HIGHBIT %X\n", UINT_HIGHBIT);
- printf ("INT_MAX %X\n", INT_MAX);
- printf ("INT_MIN %X\n", INT_MIN);
-
- printf ("USHRT_MAX %hX\n", USHRT_MAX);
- printf ("USHRT_HIGHBIT %hX\n", USHRT_HIGHBIT);
- printf ("SHRT_MAX %hX\n", SHRT_MAX);
- printf ("SHRT_MIN %hX\n", SHRT_MIN);
-
- printf ("\n");
- printf ("Bits\n");
- CALC_BITS (bits, long); printf (" long %d\n", bits);
- CALC_BITS (bits, int); printf (" int %d\n", bits);
- CALC_BITS (bits, short); printf (" short %d\n", bits);
- CALC_BITS (bits, unsigned long); printf (" unsigned long %d\n", bits);
- CALC_BITS (bits, unsigned int); printf (" unsigned int %d\n", bits);
- CALC_BITS (bits, unsigned short); printf (" unsigned short %d\n", bits);
- CALC_BITS (bits, mp_size_t); printf (" mp_size_t %d\n", bits);
- }
-
- if (error)
- abort ();
-
- exit (0);
-}
« no previous file with comments | « gcc/gmp/tests/t-bswap.c ('k') | gcc/gmp/tests/t-gmpmax.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698