Blame gnulib-tests/test-stdint.c

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