1189251Ssam/* This file is automatically generated.  DO NOT EDIT! */
2189251Ssam/* Generated from: NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp  */
3189251Ssam/* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4189251Ssam
5252726Srpaulo/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
6252726Srpaulo/* A GNU-like <limits.h>.
7189251Ssam
8189251Ssam   Copyright 2016-2022 Free Software Foundation, Inc.
9189251Ssam
10189251Ssam   This file is free software: you can redistribute it and/or modify
11189251Ssam   it under the terms of the GNU Lesser General Public License as
12214734Srpaulo   published by the Free Software Foundation; either version 2.1 of the
13214734Srpaulo   License, or (at your option) any later version.
14214734Srpaulo
15189251Ssam   This file is distributed in the hope that it will be useful,
16189251Ssam   but WITHOUT ANY WARRANTY; without even the implied warranty of
17189251Ssam   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18189251Ssam   GNU Lesser General Public License for more details.
19189251Ssam
20189251Ssam   You should have received a copy of the GNU Lesser General Public License
21189251Ssam   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
22214734Srpaulo
23189251Ssam#if __GNUC__ >= 3
24214734Srpaulo#pragma GCC system_header
25214734Srpaulo#endif
26189251Ssam
27214734Srpaulo
28189251Ssam#if defined _GL_ALREADY_INCLUDING_LIMITS_H
29189251Ssam/* Special invocation convention:
30189251Ssam   On Haiku/x86_64, we have a sequence of nested includes
31189251Ssam   <limits.h> -> <syslimits.h> -> <limits.h>.
32189251Ssam   In this situation, LONG_MAX and INT_MAX are not yet defined,
33189251Ssam   therefore we should not attempt to define LONG_BIT.  */
34189251Ssam
35189251Ssam#include_next <limits.h>
36189251Ssam
37189251Ssam#else
38189251Ssam/* Normal invocation convention.  */
39189251Ssam
40189251Ssam#ifndef _GL_LIMITS_H
41189251Ssam
42189251Ssam# define _GL_ALREADY_INCLUDING_LIMITS_H
43189251Ssam
44189251Ssam/* The include_next requires a split double-inclusion guard.  */
45189251Ssam# include_next <limits.h>
46189251Ssam
47189251Ssam# undef _GL_ALREADY_INCLUDING_LIMITS_H
48189251Ssam
49189251Ssam#ifndef _GL_LIMITS_H
50214734Srpaulo#define _GL_LIMITS_H
51252726Srpaulo
52252726Srpaulo#ifndef LLONG_MIN
53252726Srpaulo# if defined LONG_LONG_MIN /* HP-UX 11.31 */
54252726Srpaulo#  define LLONG_MIN LONG_LONG_MIN
55252726Srpaulo# elif defined LONGLONG_MIN /* IRIX 6.5 */
56252726Srpaulo#  define LLONG_MIN LONGLONG_MIN
57252726Srpaulo# elif defined __GNUC__
58252726Srpaulo#  define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL)
59252726Srpaulo# endif
60252726Srpaulo#endif
61252726Srpaulo#ifndef LLONG_MAX
62252726Srpaulo# if defined LONG_LONG_MAX /* HP-UX 11.31 */
63252726Srpaulo#  define LLONG_MAX LONG_LONG_MAX
64189251Ssam# elif defined LONGLONG_MAX /* IRIX 6.5 */
65189251Ssam#  define LLONG_MAX LONGLONG_MAX
66189251Ssam# elif defined __GNUC__
67189251Ssam#  define LLONG_MAX __LONG_LONG_MAX__
68189251Ssam# endif
69189251Ssam#endif
70189251Ssam#ifndef ULLONG_MAX
71189251Ssam# if defined ULONG_LONG_MAX /* HP-UX 11.31 */
72189251Ssam#  define ULLONG_MAX ULONG_LONG_MAX
73189251Ssam# elif defined ULONGLONG_MAX /* IRIX 6.5 */
74189251Ssam#  define ULLONG_MAX ULONGLONG_MAX
75189251Ssam# elif defined __GNUC__
76214734Srpaulo#  define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL)
77214734Srpaulo# endif
78189251Ssam#endif
79189251Ssam
80189251Ssam/* The number of usable bits in an unsigned or signed integer type
81189251Ssam   with minimum value MIN and maximum value MAX, as an int expression
82189251Ssam   suitable in #if.  Cover all known practical hosts.  This
83189251Ssam   implementation exploits the fact that MAX is 1 less than a power of
84189251Ssam   2, and merely counts the number of 1 bits in MAX; "COBn" means
85189251Ssam   "count the number of 1 bits in the low-order n bits").  */
86189251Ssam#define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max))
87189251Ssam#define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n))
88189251Ssam#define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n))
89189251Ssam#define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n))
90189251Ssam#define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n))
91189251Ssam#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n))
92189251Ssam#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1))
93189251Ssam
94189251Ssam#ifndef WORD_BIT
95189251Ssam/* Assume 'int' is 32 bits wide.  */
96189251Ssam# define WORD_BIT 32
97189251Ssam#endif
98189251Ssam#ifndef LONG_BIT
99189251Ssam/* Assume 'long' is 32 or 64 bits wide.  */
100189251Ssam# if LONG_MAX == INT_MAX
101189251Ssam#  define LONG_BIT 32
102189251Ssam# else
103189251Ssam#  define LONG_BIT 64
104189251Ssam# endif
105189251Ssam#endif
106189251Ssam
107189251Ssam/* Macros specified by C2x and by ISO/IEC TS 18661-1:2014.  */
108189251Ssam
109189251Ssam#if (! defined ULLONG_WIDTH                                             \
110189251Ssam     && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \
111189251Ssam         || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)))
112189251Ssam# define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX)
113189251Ssam# define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX)
114189251Ssam# define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX)
115189251Ssam# define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX)
116189251Ssam# define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX)
117189251Ssam# define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX)
118189251Ssam# define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX)
119189251Ssam# define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX)
120189251Ssam# define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX)
121189251Ssam# define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX)
122189251Ssam# define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX)
123189251Ssam#endif
124189251Ssam
125189251Ssam/* Macros specified by C2x.  */
126189251Ssam
127189251Ssam#if (! defined BOOL_WIDTH \
128189251Ssam     && (defined _GNU_SOURCE \
129189251Ssam         || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)))
130189251Ssam# define BOOL_MAX 1
131214734Srpaulo# define BOOL_WIDTH 1
132214734Srpaulo#endif
133214734Srpaulo
134189251Ssam#endif /* _GL_LIMITS_H */
135252726Srpaulo#endif /* _GL_LIMITS_H */
136252726Srpaulo#endif
137252726Srpaulo