Blame gnulib-tests/test-stdint.c

Packit Service fdd496
/* Test of <stdint.h> substitute.
Packit Service fdd496
   Copyright (C) 2006-2017 Free Software Foundation, Inc.
Packit Service fdd496
Packit Service fdd496
   This program is free software: you can redistribute it and/or modify
Packit Service fdd496
   it under the terms of the GNU General Public License as published by
Packit Service fdd496
   the Free Software Foundation; either version 3 of the License, or
Packit Service fdd496
   (at your option) any later version.
Packit Service fdd496
Packit Service fdd496
   This program is distributed in the hope that it will be useful,
Packit Service fdd496
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fdd496
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service fdd496
   GNU General Public License for more details.
Packit Service fdd496
Packit Service fdd496
   You should have received a copy of the GNU General Public License
Packit Service fdd496
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit Service fdd496
Packit Service fdd496
/* Written by Bruno Haible <bruno@clisp.org>, 2006.  */
Packit Service fdd496
Packit Service fdd496
#include <config.h>
Packit Service fdd496
Packit Service fdd496
/* Whether to enable pedantic checks. */
Packit Service fdd496
#define DO_PEDANTIC 0
Packit Service fdd496
Packit Service fdd496
#include <stdint.h>
Packit Service fdd496
Packit Service fdd496
#include "verify.h"
Packit Service fdd496
#include "intprops.h"
Packit Service fdd496
Packit Service fdd496
#if __GNUC__ >= 2 && DO_PEDANTIC
Packit Service fdd496
# define verify_same_types(expr1,expr2)  \
Packit Service fdd496
    extern void _verify_func(__LINE__) (__typeof__ (expr1) *); \
Packit Service fdd496
    extern void _verify_func(__LINE__) (__typeof__ (expr2) *);
Packit Service fdd496
# define _verify_func(line) _verify_func2(line)
Packit Service fdd496
# define _verify_func2(line) verify_func_ ## line
Packit Service fdd496
#else
Packit Service fdd496
# define verify_same_types(expr1,expr2) extern void verify_func (int)
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.1.1. Exact-width integer types */
Packit Service fdd496
/* 7.18.2.1. Limits of exact-width integer types */
Packit Service fdd496
Packit Service fdd496
int8_t a1[3] = { INT8_C (17), INT8_MIN, INT8_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int8_t) == INT8_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int8_t) == INT8_MAX);
Packit Service fdd496
verify_same_types (INT8_MIN, (int8_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT8_MAX, (int8_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
int16_t a2[3] = { INT16_C (17), INT16_MIN, INT16_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int16_t) == INT16_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int16_t) == INT16_MAX);
Packit Service fdd496
verify_same_types (INT16_MIN, (int16_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT16_MAX, (int16_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
int32_t a3[3] = { INT32_C (17), INT32_MIN, INT32_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int32_t) == INT32_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int32_t) == INT32_MAX);
Packit Service fdd496
verify_same_types (INT32_MIN, (int32_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT32_MAX, (int32_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef INT64_MAX
Packit Service fdd496
int64_t a4[3] = { INT64_C (17), INT64_MIN, INT64_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int64_t) == INT64_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int64_t) == INT64_MAX);
Packit Service fdd496
verify_same_types (INT64_MIN, (int64_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT64_MAX, (int64_t) 0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
uint8_t b1[2] = { UINT8_C (17), UINT8_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint8_t) == UINT8_MAX);
Packit Service fdd496
verify_same_types (UINT8_MAX, (uint8_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uint16_t b2[2] = { UINT16_C (17), UINT16_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint16_t) == UINT16_MAX);
Packit Service fdd496
verify_same_types (UINT16_MAX, (uint16_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uint32_t b3[2] = { UINT32_C (17), UINT32_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint32_t) == UINT32_MAX);
Packit Service fdd496
verify_same_types (UINT32_MAX, (uint32_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef UINT64_MAX
Packit Service fdd496
uint64_t b4[2] = { UINT64_C (17), UINT64_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint64_t) == UINT64_MAX);
Packit Service fdd496
verify_same_types (UINT64_MAX, (uint64_t) 0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if INT8_MIN && INT8_MAX && INT16_MIN && INT16_MAX && INT32_MIN && INT32_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if UINT8_MAX && UINT16_MAX && UINT32_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.1.2. Minimum-width integer types */
Packit Service fdd496
/* 7.18.2.2. Limits of minimum-width integer types */
Packit Service fdd496
Packit Service fdd496
int_least8_t c1[3] = { 17, INT_LEAST8_MIN, INT_LEAST8_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_least8_t) == INT_LEAST8_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_least8_t) == INT_LEAST8_MAX);
Packit Service fdd496
verify_same_types (INT_LEAST8_MIN, (int_least8_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_LEAST8_MAX, (int_least8_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
int_least16_t c2[3] = { 17, INT_LEAST16_MIN, INT_LEAST16_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_least16_t) == INT_LEAST16_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_least16_t) == INT_LEAST16_MAX);
Packit Service fdd496
verify_same_types (INT_LEAST16_MIN, (int_least16_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_LEAST16_MAX, (int_least16_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
int_least32_t c3[3] = { 17, INT_LEAST32_MIN, INT_LEAST32_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_least32_t) == INT_LEAST32_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_least32_t) == INT_LEAST32_MAX);
Packit Service fdd496
verify_same_types (INT_LEAST32_MIN, (int_least32_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_LEAST32_MAX, (int_least32_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef INT_LEAST64_MAX
Packit Service fdd496
int_least64_t c4[3] = { 17, INT_LEAST64_MIN, INT_LEAST64_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_least64_t) == INT_LEAST64_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_least64_t) == INT_LEAST64_MAX);
Packit Service fdd496
verify_same_types (INT_LEAST64_MIN, (int_least64_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_LEAST64_MAX, (int_least64_t) 0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
uint_least8_t d1[2] = { 17, UINT_LEAST8_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_least8_t) == UINT_LEAST8_MAX);
Packit Service fdd496
verify_same_types (UINT_LEAST8_MAX, (uint_least8_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uint_least16_t d2[2] = { 17, UINT_LEAST16_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_least16_t) == UINT_LEAST16_MAX);
Packit Service fdd496
verify_same_types (UINT_LEAST16_MAX, (uint_least16_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uint_least32_t d3[2] = { 17, UINT_LEAST32_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_least32_t) == UINT_LEAST32_MAX);
Packit Service fdd496
verify_same_types (UINT_LEAST32_MAX, (uint_least32_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef UINT_LEAST64_MAX
Packit Service fdd496
uint_least64_t d4[2] = { 17, UINT_LEAST64_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_least64_t) == UINT_LEAST64_MAX);
Packit Service fdd496
verify_same_types (UINT_LEAST64_MAX, (uint_least64_t) 0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if INT_LEAST8_MIN && INT_LEAST8_MAX && INT_LEAST16_MIN && INT_LEAST16_MAX && INT_LEAST32_MIN && INT_LEAST32_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if UINT_LEAST8_MAX && UINT_LEAST16_MAX && UINT_LEAST32_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.1.3. Fastest minimum-width integer types */
Packit Service fdd496
/* 7.18.2.3. Limits of fastest minimum-width integer types */
Packit Service fdd496
Packit Service fdd496
int_fast8_t e1[3] = { 17, INT_FAST8_MIN, INT_FAST8_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_fast8_t) == INT_FAST8_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_fast8_t) == INT_FAST8_MAX);
Packit Service fdd496
verify_same_types (INT_FAST8_MIN, (int_fast8_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_FAST8_MAX, (int_fast8_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
int_fast16_t e2[3] = { 17, INT_FAST16_MIN, INT_FAST16_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_fast16_t) == INT_FAST16_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_fast16_t) == INT_FAST16_MAX);
Packit Service fdd496
verify_same_types (INT_FAST16_MIN, (int_fast16_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_FAST16_MAX, (int_fast16_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
int_fast32_t e3[3] = { 17, INT_FAST32_MIN, INT_FAST32_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_fast32_t) == INT_FAST32_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_fast32_t) == INT_FAST32_MAX);
Packit Service fdd496
verify_same_types (INT_FAST32_MIN, (int_fast32_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_FAST32_MAX, (int_fast32_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef INT_FAST64_MAX
Packit Service fdd496
int_fast64_t e4[3] = { 17, INT_FAST64_MIN, INT_FAST64_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (int_fast64_t) == INT_FAST64_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (int_fast64_t) == INT_FAST64_MAX);
Packit Service fdd496
verify_same_types (INT_FAST64_MIN, (int_fast64_t) 0 + 0);
Packit Service fdd496
verify_same_types (INT_FAST64_MAX, (int_fast64_t) 0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
uint_fast8_t f1[2] = { 17, UINT_FAST8_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_fast8_t) == UINT_FAST8_MAX);
Packit Service fdd496
verify_same_types (UINT_FAST8_MAX, (uint_fast8_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uint_fast16_t f2[2] = { 17, UINT_FAST16_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_fast16_t) == UINT_FAST16_MAX);
Packit Service fdd496
verify_same_types (UINT_FAST16_MAX, (uint_fast16_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uint_fast32_t f3[2] = { 17, UINT_FAST32_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_fast32_t) == UINT_FAST32_MAX);
Packit Service fdd496
verify_same_types (UINT_FAST32_MAX, (uint_fast32_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef UINT_FAST64_MAX
Packit Service fdd496
uint_fast64_t f4[2] = { 17, UINT_FAST64_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uint_fast64_t) == UINT_FAST64_MAX);
Packit Service fdd496
verify_same_types (UINT_FAST64_MAX, (uint_fast64_t) 0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if INT_FAST8_MIN && INT_FAST8_MAX && INT_FAST16_MIN && INT_FAST16_MAX && INT_FAST32_MIN && INT_FAST32_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if UINT_FAST8_MAX && UINT_FAST16_MAX && UINT_FAST32_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.1.4. Integer types capable of holding object pointers */
Packit Service fdd496
/* 7.18.2.4. Limits of integer types capable of holding object pointers */
Packit Service fdd496
Packit Service fdd496
intptr_t g[3] = { 17, INTPTR_MIN, INTPTR_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (intptr_t) == INTPTR_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (intptr_t) == INTPTR_MAX);
Packit Service fdd496
verify_same_types (INTPTR_MIN, (intptr_t) 0 + 0);
Packit Service fdd496
verify_same_types (INTPTR_MAX, (intptr_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uintptr_t h[2] = { 17, UINTPTR_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uintptr_t) == UINTPTR_MAX);
Packit Service fdd496
verify_same_types (UINTPTR_MAX, (uintptr_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#if INTPTR_MIN && INTPTR_MAX && UINTPTR_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.1.5. Greatest-width integer types */
Packit Service fdd496
/* 7.18.2.5. Limits of greatest-width integer types */
Packit Service fdd496
Packit Service fdd496
intmax_t i[3] = { INTMAX_C (17), INTMAX_MIN, INTMAX_MAX };
Packit Service fdd496
verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
Packit Service fdd496
verify_same_types (INTMAX_MIN, (intmax_t) 0 + 0);
Packit Service fdd496
verify_same_types (INTMAX_MAX, (intmax_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX };
Packit Service fdd496
verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
Packit Service fdd496
verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
/* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in
Packit Service fdd496
   the preprocessor.  */
Packit Service fdd496
#if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__))
Packit Service fdd496
#if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.3. Limits of other integer types */
Packit Service fdd496
Packit Service fdd496
#include <stddef.h>
Packit Service fdd496
Packit Service fdd496
verify (TYPE_MINIMUM (ptrdiff_t) == PTRDIFF_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (ptrdiff_t) == PTRDIFF_MAX);
Packit Service fdd496
verify_same_types (PTRDIFF_MIN, (ptrdiff_t) 0 + 0);
Packit Service fdd496
verify_same_types (PTRDIFF_MAX, (ptrdiff_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#if PTRDIFF_MIN && PTRDIFF_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#include <signal.h>
Packit Service fdd496
Packit Service fdd496
verify (TYPE_MINIMUM (sig_atomic_t) == SIG_ATOMIC_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (sig_atomic_t) == SIG_ATOMIC_MAX);
Packit Service fdd496
verify_same_types (SIG_ATOMIC_MIN, (sig_atomic_t) 0 + 0);
Packit Service fdd496
verify_same_types (SIG_ATOMIC_MAX, (sig_atomic_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#if SIG_ATOMIC_MIN != 17 && SIG_ATOMIC_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
verify (TYPE_MAXIMUM (size_t) == SIZE_MAX);
Packit Service fdd496
verify_same_types (SIZE_MAX, (size_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
#if SIZE_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
#else
Packit Service fdd496
err or;
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if HAVE_WCHAR_T
Packit Service fdd496
verify (TYPE_MINIMUM (wchar_t) == WCHAR_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (wchar_t) == WCHAR_MAX);
Packit Service fdd496
verify_same_types (WCHAR_MIN, (wchar_t) 0 + 0);
Packit Service fdd496
verify_same_types (WCHAR_MAX, (wchar_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
# if WCHAR_MIN != 17 && WCHAR_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
# else
Packit Service fdd496
err or;
Packit Service fdd496
# endif
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#if HAVE_WINT_T
Packit Service fdd496
# include <wchar.h>
Packit Service fdd496
Packit Service fdd496
verify (TYPE_MINIMUM (wint_t) == WINT_MIN);
Packit Service fdd496
verify (TYPE_MAXIMUM (wint_t) == WINT_MAX);
Packit Service fdd496
verify_same_types (WINT_MIN, (wint_t) 0 + 0);
Packit Service fdd496
verify_same_types (WINT_MAX, (wint_t) 0 + 0);
Packit Service fdd496
Packit Service fdd496
# if WINT_MIN != 17 && WINT_MAX
Packit Service fdd496
/* ok */
Packit Service fdd496
# else
Packit Service fdd496
err or;
Packit Service fdd496
# endif
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* 7.18.4. Macros for integer constants */
Packit Service fdd496
Packit Service fdd496
verify (INT8_C (17) == 17);
Packit Service fdd496
verify_same_types (INT8_C (17), (int_least8_t)0 + 0);
Packit Service fdd496
verify (UINT8_C (17) == 17);
Packit Service fdd496
verify_same_types (UINT8_C (17), (uint_least8_t)0 + 0);
Packit Service fdd496
Packit Service fdd496
verify (INT16_C (17) == 17);
Packit Service fdd496
verify_same_types (INT16_C (17), (int_least16_t)0 + 0);
Packit Service fdd496
verify (UINT16_C (17) == 17);
Packit Service fdd496
verify_same_types (UINT16_C (17), (uint_least16_t)0 + 0);
Packit Service fdd496
Packit Service fdd496
verify (INT32_C (17) == 17);
Packit Service fdd496
verify_same_types (INT32_C (17), (int_least32_t)0 + 0);
Packit Service fdd496
verify (UINT32_C (17) == 17);
Packit Service fdd496
verify_same_types (UINT32_C (17), (uint_least32_t)0 + 0);
Packit Service fdd496
Packit Service fdd496
#ifdef INT64_C
Packit Service fdd496
verify (INT64_C (17) == 17);
Packit Service fdd496
verify_same_types (INT64_C (17), (int_least64_t)0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef UINT64_C
Packit Service fdd496
verify (UINT64_C (17) == 17);
Packit Service fdd496
verify_same_types (UINT64_C (17), (uint_least64_t)0 + 0);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
verify (INTMAX_C (17) == 17);
Packit Service fdd496
verify_same_types (INTMAX_C (17), (intmax_t)0 + 0);
Packit Service fdd496
verify (UINTMAX_C (17) == 17);
Packit Service fdd496
verify_same_types (UINTMAX_C (17), (uintmax_t)0 + 0);
Packit Service fdd496
Packit Service fdd496
/* Use _GL_VERIFY (with a fixed-length diagnostic string) rather than verify,
Packit Service fdd496
   because the latter would require forming each stringified expression, and
Packit Service fdd496
   many of these would be so long as to trigger a warning/error like this:
Packit Service fdd496
Packit Service fdd496
   test-stdint.c:407:1: error: string length '6980' is greater than the \
Packit Service fdd496
     length '4095' ISO C99 compilers are required to support \
Packit Service fdd496
     [-Werror=overlength-strings]
Packit Service fdd496
  */
Packit Service fdd496
#define verify_width(width, min, max) \
Packit Service fdd496
  _GL_VERIFY ((max) >> ((width) - 1 - ((min) < 0)) == 1, \
Packit Service fdd496
              "verify_width check")
Packit Service fdd496
Packit Service fdd496
/* Macros specified by ISO/IEC TS 18661-1:2014.  */
Packit Service fdd496
Packit Service fdd496
#ifdef INT8_MAX
Packit Service fdd496
verify_width (INT8_WIDTH, INT8_MIN, INT8_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef UINT8_MAX
Packit Service fdd496
verify_width (UINT8_WIDTH, 0, UINT8_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef INT16_MAX
Packit Service fdd496
verify_width (INT16_WIDTH, INT16_MIN, INT16_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef UINT16_MAX
Packit Service fdd496
verify_width (UINT16_WIDTH, 0, UINT16_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef INT32_MAX
Packit Service fdd496
verify_width (INT32_WIDTH, INT32_MIN, INT32_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef UINT32_MAX
Packit Service fdd496
verify_width (UINT32_WIDTH, 0, UINT32_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef INT64_MAX
Packit Service fdd496
verify_width (INT64_WIDTH, INT64_MIN, INT64_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef UINT64_MAX
Packit Service fdd496
verify_width (UINT64_WIDTH, 0, UINT64_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
verify_width (INT_LEAST8_WIDTH, INT_LEAST8_MIN, INT_LEAST8_MAX);
Packit Service fdd496
verify_width (UINT_LEAST8_WIDTH, 0, UINT_LEAST8_MAX);
Packit Service fdd496
verify_width (INT_LEAST16_WIDTH, INT_LEAST16_MIN, INT_LEAST16_MAX);
Packit Service fdd496
verify_width (UINT_LEAST16_WIDTH, 0, UINT_LEAST16_MAX);
Packit Service fdd496
verify_width (INT_LEAST32_WIDTH, INT_LEAST32_MIN, INT_LEAST32_MAX);
Packit Service fdd496
verify_width (UINT_LEAST32_WIDTH, 0, UINT_LEAST32_MAX);
Packit Service fdd496
verify_width (INT_LEAST64_WIDTH, INT_LEAST64_MIN, INT_LEAST64_MAX);
Packit Service fdd496
verify_width (UINT_LEAST64_WIDTH, 0, UINT_LEAST64_MAX);
Packit Service fdd496
verify_width (INT_FAST8_WIDTH, INT_FAST8_MIN, INT_FAST8_MAX);
Packit Service fdd496
verify_width (UINT_FAST8_WIDTH, 0, UINT_FAST8_MAX);
Packit Service fdd496
verify_width (INT_FAST16_WIDTH, INT_FAST16_MIN, INT_FAST16_MAX);
Packit Service fdd496
verify_width (UINT_FAST16_WIDTH, 0, UINT_FAST16_MAX);
Packit Service fdd496
verify_width (INT_FAST32_WIDTH, INT_FAST32_MIN, INT_FAST32_MAX);
Packit Service fdd496
verify_width (UINT_FAST32_WIDTH, 0, UINT_FAST32_MAX);
Packit Service fdd496
verify_width (INT_FAST64_WIDTH, INT_FAST64_MIN, INT_FAST64_MAX);
Packit Service fdd496
verify_width (UINT_FAST64_WIDTH, 0, UINT_FAST64_MAX);
Packit Service fdd496
verify_width (INTPTR_WIDTH, INTPTR_MIN, INTPTR_MAX);
Packit Service fdd496
verify_width (UINTPTR_WIDTH, 0, UINTPTR_MAX);
Packit Service fdd496
verify_width (INTMAX_WIDTH, INTMAX_MIN, INTMAX_MAX);
Packit Service fdd496
verify_width (UINTMAX_WIDTH, 0, UINTMAX_MAX);
Packit Service fdd496
verify_width (PTRDIFF_WIDTH, PTRDIFF_MIN, PTRDIFF_MAX);
Packit Service fdd496
verify_width (SIZE_WIDTH, 0, SIZE_MAX);
Packit Service fdd496
verify_width (WCHAR_WIDTH, WCHAR_MIN, WCHAR_MAX);
Packit Service fdd496
#ifdef WINT_MAX
Packit Service fdd496
verify_width (WINT_WIDTH, WINT_MIN, WINT_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef SIG_ATOMIC_MAX
Packit Service fdd496
verify_width (SIG_ATOMIC_WIDTH, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX);
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
int
Packit Service fdd496
main (void)
Packit Service fdd496
{
Packit Service fdd496
  return 0;
Packit Service fdd496
}