]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/glimits.h
[Ada] Fix documentation for GNAT.Command_Line.Exit_From_Command_Line
[thirdparty/gcc.git] / gcc / glimits.h
CommitLineData
fbd26352 1/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
7dfbd804 2
3This file is part of GCC.
4
5GCC is free software; you can redistribute it and/or modify it under
6the terms of the GNU General Public License as published by the Free
7Software Foundation; either version 3, or (at your option) any later
8version.
9
10GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11WARRANTY; without even the implied warranty of MERCHANTABILITY or
12FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13for more details.
14
15Under Section 7 of GPL version 3, you are granted additional
16permissions described in the GCC Runtime Library Exception, version
173.1, as published by the Free Software Foundation.
18
19You should have received a copy of the GNU General Public License and
20a copy of the GCC Runtime Library Exception along with this program;
21see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22<http://www.gnu.org/licenses/>. */
23
9a04f2f8 24#ifndef _LIMITS_H___
9a04f2f8 25#define _LIMITS_H___
20979a55 26
de3126ea 27/* Number of bits in a `char'. */
28#undef CHAR_BIT
574006c3 29#define CHAR_BIT __CHAR_BIT__
de3126ea 30
b1f46849 31/* Maximum length of a multibyte character. */
32#ifndef MB_LEN_MAX
de3126ea 33#define MB_LEN_MAX 1
b1f46849 34#endif
de3126ea 35
36/* Minimum and maximum values a `signed char' can hold. */
37#undef SCHAR_MIN
574006c3 38#define SCHAR_MIN (-SCHAR_MAX - 1)
de3126ea 39#undef SCHAR_MAX
574006c3 40#define SCHAR_MAX __SCHAR_MAX__
de3126ea 41
42/* Maximum value an `unsigned char' can hold. (Minimum is 0). */
43#undef UCHAR_MAX
574006c3 44#if __SCHAR_MAX__ == __INT_MAX__
45# define UCHAR_MAX (SCHAR_MAX * 2U + 1U)
46#else
47# define UCHAR_MAX (SCHAR_MAX * 2 + 1)
48#endif
de3126ea 49
50/* Minimum and maximum values a `char' can hold. */
51#ifdef __CHAR_UNSIGNED__
574006c3 52# undef CHAR_MIN
53# if __SCHAR_MAX__ == __INT_MAX__
54# define CHAR_MIN 0U
55# else
56# define CHAR_MIN 0
57# endif
58# undef CHAR_MAX
59# define CHAR_MAX UCHAR_MAX
de3126ea 60#else
574006c3 61# undef CHAR_MIN
62# define CHAR_MIN SCHAR_MIN
63# undef CHAR_MAX
64# define CHAR_MAX SCHAR_MAX
47a6d1ac 65#endif
66
de3126ea 67/* Minimum and maximum values a `signed short int' can hold. */
68#undef SHRT_MIN
574006c3 69#define SHRT_MIN (-SHRT_MAX - 1)
de3126ea 70#undef SHRT_MAX
47a6d1ac 71#define SHRT_MAX __SHRT_MAX__
de3126ea 72
582a8503 73/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */
74#undef USHRT_MAX
47a6d1ac 75#if __SHRT_MAX__ == __INT_MAX__
574006c3 76# define USHRT_MAX (SHRT_MAX * 2U + 1U)
582a8503 77#else
574006c3 78# define USHRT_MAX (SHRT_MAX * 2 + 1)
582a8503 79#endif
80
574006c3 81/* Minimum and maximum values a `signed int' can hold. */
82#undef INT_MIN
83#define INT_MIN (-INT_MAX - 1)
84#undef INT_MAX
85#define INT_MAX __INT_MAX__
86
de3126ea 87/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
88#undef UINT_MAX
574006c3 89#define UINT_MAX (INT_MAX * 2U + 1U)
de3126ea 90
91/* Minimum and maximum values a `signed long int' can hold.
92 (Same as `int'). */
93#undef LONG_MIN
574006c3 94#define LONG_MIN (-LONG_MAX - 1L)
de3126ea 95#undef LONG_MAX
f64d0b3a 96#define LONG_MAX __LONG_MAX__
de3126ea 97
98/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
99#undef ULONG_MAX
574006c3 100#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
cee8b059 101
102#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
103/* Minimum and maximum values a `signed long long int' can hold. */
574006c3 104# undef LLONG_MIN
105# define LLONG_MIN (-LLONG_MAX - 1LL)
106# undef LLONG_MAX
107# define LLONG_MAX __LONG_LONG_MAX__
cee8b059 108
109/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
574006c3 110# undef ULLONG_MAX
111# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
cee8b059 112#endif
113
114#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
115/* Minimum and maximum values a `signed long long int' can hold. */
574006c3 116# undef LONG_LONG_MIN
117# define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
118# undef LONG_LONG_MAX
119# define LONG_LONG_MAX __LONG_LONG_MAX__
e1fd79ed 120
121/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
574006c3 122# undef ULONG_LONG_MAX
123# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
e1fd79ed 124#endif
125
c5eddaf9 126#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
127/* TS 18661-1 widths of integer types. */
128# undef CHAR_WIDTH
129# define CHAR_WIDTH __SCHAR_WIDTH__
130# undef SCHAR_WIDTH
131# define SCHAR_WIDTH __SCHAR_WIDTH__
132# undef UCHAR_WIDTH
133# define UCHAR_WIDTH __SCHAR_WIDTH__
134# undef SHRT_WIDTH
135# define SHRT_WIDTH __SHRT_WIDTH__
136# undef USHRT_WIDTH
137# define USHRT_WIDTH __SHRT_WIDTH__
138# undef INT_WIDTH
139# define INT_WIDTH __INT_WIDTH__
140# undef UINT_WIDTH
141# define UINT_WIDTH __INT_WIDTH__
142# undef LONG_WIDTH
143# define LONG_WIDTH __LONG_WIDTH__
144# undef ULONG_WIDTH
145# define ULONG_WIDTH __LONG_WIDTH__
146# undef LLONG_WIDTH
147# define LLONG_WIDTH __LONG_LONG_WIDTH__
148# undef ULLONG_WIDTH
149# define ULLONG_WIDTH __LONG_LONG_WIDTH__
150#endif
151
9a04f2f8 152#endif /* _LIMITS_H___ */