master
  1/* <limits.h> for the Aro C compiler */
  2
  3#pragma once
  4
  5/* GlibC will try to include_next GCC's limits.h which will fail.
  6   Define _GCC_LIMITS_H_ to prevent it.  */
  7#if defined __GNUC__ && !defined _GCC_LIMITS_H_
  8#define _GCC_LIMITS_H_
  9#endif
 10
 11/* Include the system's limits.h */
 12#if __STDC_HOSTED__ && __has_include_next(<limits.h>)
 13#include_next <limits.h>
 14#endif
 15
 16#undef SCHAR_MAX
 17#define SCHAR_MAX __SCHAR_MAX__
 18
 19#undef SHRT_MAX
 20#define SHRT_MAX  __SHRT_MAX__
 21
 22#undef INT_MAX
 23#define INT_MAX   __INT_MAX__
 24
 25#undef LONG_MAX
 26#define LONG_MAX  __LONG_MAX__
 27
 28#undef SCHAR_MIN
 29#define SCHAR_MIN (-__SCHAR_MAX__-1)
 30
 31#undef SHRT_MIN
 32#define SHRT_MIN  (-__SHRT_MAX__ -1)
 33
 34#undef INT_MIN
 35#define INT_MIN   (-__INT_MAX__  -1)
 36
 37#undef LONG_MIN
 38#define LONG_MIN  (-__LONG_MAX__ -1L)
 39
 40#undef UCHAR_MAX
 41#define UCHAR_MAX (__SCHAR_MAX__*2  +1)
 42
 43#undef USHRT_MAX
 44#define USHRT_MAX (__SHRT_MAX__ *2  +1)
 45
 46#undef UINT_MAX
 47#define UINT_MAX  (__INT_MAX__  *2U +1U)
 48
 49#undef ULONG_MAX
 50#define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
 51
 52#ifndef MB_LEN_MAX
 53#define MB_LEN_MAX 1
 54#endif
 55
 56#undef CHAR_BIT
 57#define CHAR_BIT  __CHAR_BIT__
 58
 59#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
 60
 61#undef BOOL_WIDTH
 62#define BOOL_WIDTH   __BOOL_WIDTH__
 63
 64#undef CHAR_WIDTH
 65#define CHAR_WIDTH   CHAR_BIT
 66
 67#undef SCHAR_WIDTH
 68#define SCHAR_WIDTH  CHAR_BIT
 69
 70#undef UCHAR_WIDTH
 71#define UCHAR_WIDTH  CHAR_BIT
 72
 73#undef USHRT_WIDTH
 74#define USHRT_WIDTH  __SHRT_WIDTH__
 75
 76#undef SHRT_WIDTH
 77#define SHRT_WIDTH   __SHRT_WIDTH__
 78
 79#undef UINT_WIDTH
 80#define UINT_WIDTH   __INT_WIDTH__
 81
 82#undef INT_WIDTH
 83#define INT_WIDTH    __INT_WIDTH__
 84
 85#undef ULONG_WIDTH
 86#define ULONG_WIDTH  __LONG_WIDTH__
 87
 88#undef LONG_WIDTH
 89#define LONG_WIDTH   __LONG_WIDTH__
 90
 91#undef ULLONG_WIDTH
 92#define ULLONG_WIDTH __LLONG_WIDTH__
 93
 94#undef LLONG_WIDTH
 95#define LLONG_WIDTH  __LLONG_WIDTH__
 96
 97#undef BITINT_MAXWIDTH
 98#define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
 99
100#endif  /*  defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L */
101
102#undef CHAR_MIN
103#undef CHAR_MAX
104#ifdef __CHAR_UNSIGNED__
105#define CHAR_MIN 0
106#define CHAR_MAX UCHAR_MAX
107#else
108#define CHAR_MIN SCHAR_MIN
109#define CHAR_MAX __SCHAR_MAX__
110#endif
111
112#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
113
114#undef  LLONG_MIN
115#define LLONG_MIN  (-__LONG_LONG_MAX__-1LL)
116
117#undef  LLONG_MAX
118#define LLONG_MAX  __LONG_LONG_MAX__
119
120#undef  ULLONG_MAX
121#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
122
123#endif
124