summaryrefslogtreecommitdiff
path: root/gettext-tools/gnulib-tests/test-intprops.c
diff options
context:
space:
mode:
Diffstat (limited to 'gettext-tools/gnulib-tests/test-intprops.c')
-rw-r--r--gettext-tools/gnulib-tests/test-intprops.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/gettext-tools/gnulib-tests/test-intprops.c b/gettext-tools/gnulib-tests/test-intprops.c
index 82dc9bf..51fe096 100644
--- a/gettext-tools/gnulib-tests/test-intprops.c
+++ b/gettext-tools/gnulib-tests/test-intprops.c
@@ -1,5 +1,5 @@
/* Test intprops.h.
- Copyright (C) 2011-2015 Free Software Foundation, Inc.
+ Copyright (C) 2011-2016 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -94,12 +94,8 @@ main (void)
ASSERT (TYPE_SIGNED (double));
ASSERT (TYPE_SIGNED (long double));
- /* Integer representation. */
- VERIFY (INT_MIN + INT_MAX < 0
- ? (TYPE_TWOS_COMPLEMENT (int)
- && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int))
- : (! TYPE_TWOS_COMPLEMENT (int)
- && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int))));
+ /* Integer representation. Check that it is two's complement. */
+ VERIFY (INT_MIN + INT_MAX < 0);
/* TYPE_MINIMUM, TYPE_MAXIMUM. */
VERIFY (TYPE_MINIMUM (char) == CHAR_MIN);
@@ -156,8 +152,7 @@ main (void)
{ \
t result; \
ASSERT (INT_##opname##_WRAPV (a, b, &result) == (v)); \
- ASSERT (result == ((v) ? (vres) : ((a) op (b))) \
- || ((v) && !TYPE_TWOS_COMPLEMENT (t))); \
+ ASSERT (result == ((v) ? (vres) : ((a) op (b)))); \
}
#define CHECK_UNOP(op, opname, a, t, v) \
VERIFY (INT_##opname##_RANGE_OVERFLOW (a, TYPE_MINIMUM (t), \
@@ -183,7 +178,7 @@ main (void)
CHECK_BINOP (-, SUBTRACT, UINT_MAX, 1u, unsigned int, false, UINT_MAX - 1u);
CHECK_BINOP (-, SUBTRACT, 0u, 1u, unsigned int, true, 0u - 1u);
- CHECK_UNOP (-, NEGATE, INT_MIN, int, TYPE_TWOS_COMPLEMENT (int));
+ CHECK_UNOP (-, NEGATE, INT_MIN, int, true);
CHECK_UNOP (-, NEGATE, 0, int, false);
CHECK_UNOP (-, NEGATE, INT_MAX, int, false);
CHECK_UNOP (-, NEGATE, 0u, unsigned int, false);
@@ -230,8 +225,7 @@ main (void)
{ \
t result; \
ASSERT (INT_ADD_WRAPV (a, b, &result) == (v)); \
- ASSERT (result == ((v) ? (vres) : ((a) + (b))) \
- || ((v) && !TYPE_TWOS_COMPLEMENT (t))); \
+ ASSERT (result == ((v) ? (vres) : ((a) + (b)))); \
}
CHECK_SSUM (-1, LONG_MIN, long int, true, LONG_MAX);
CHECK_SUM (-1, UINT_MAX, unsigned int, false, DONTCARE);
@@ -259,8 +253,7 @@ main (void)
{ \
t result; \
ASSERT (INT_SUBTRACT_WRAPV (a, b, &result) == (v)); \
- ASSERT (result == ((v) ? (vres) : ((a) - (b))) \
- || ((v) && !TYPE_TWOS_COMPLEMENT (t))); \
+ ASSERT (result == ((v) ? (vres) : ((a) - (b)))); \
}
CHECK_DIFFERENCE (INT_MAX, 1u, unsigned int, UINT_MAX < INT_MAX - 1,
INT_MAX - 1u);
@@ -292,8 +285,7 @@ main (void)
{ \
t result; \
ASSERT (INT_MULTIPLY_WRAPV (a, b, &result) == (v)); \
- ASSERT (result == ((v) ? (vres) : ((a) * (b))) \
- || ((v) && !TYPE_TWOS_COMPLEMENT (t))); \
+ ASSERT (result == ((v) ? (vres) : ((a) * (b)))); \
}
CHECK_PRODUCT (-1, 1u, unsigned int, true, -1 * 1u);
CHECK_SPRODUCT (-1, INT_MIN, int, INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN);
@@ -351,8 +343,7 @@ main (void)
#define CHECK_QUOTIENT(a, b, v) VERIFY (INT_DIVIDE_OVERFLOW (a, b) == (v))
- CHECK_QUOTIENT (INT_MIN, -1L,
- TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN);
+ CHECK_QUOTIENT (INT_MIN, -1L, INT_MIN == LONG_MIN);
CHECK_QUOTIENT (INT_MIN, UINT_MAX, false);
CHECK_QUOTIENT (INTMAX_MIN, UINTMAX_MAX, false);
CHECK_QUOTIENT (INTMAX_MIN, UINT_MAX, false);
@@ -365,8 +356,7 @@ main (void)
#define CHECK_REMAINDER(a, b, v) VERIFY (INT_REMAINDER_OVERFLOW (a, b) == (v))
- CHECK_REMAINDER (INT_MIN, -1L,
- TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN);
+ CHECK_REMAINDER (INT_MIN, -1L, INT_MIN == LONG_MIN);
CHECK_REMAINDER (-1, UINT_MAX, true);
CHECK_REMAINDER ((intmax_t) -1, UINTMAX_MAX, true);
CHECK_REMAINDER (INTMAX_MIN, UINT_MAX,