1/* Definitions for <stdint.h> types for NetBSD systems.
2   Copyright (C) 2016-2020 Free Software Foundation, Inc.
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 3, or (at your option)
9any later version.
10
11GCC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16Under Section 7 of GPL version 3, you are granted additional
17permissions described in the GCC Runtime Library Exception, version
183.1, as published by the Free Software Foundation.
19
20You should have received a copy of the GNU General Public License and
21a copy of the GCC Runtime Library Exception along with this program;
22see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23<http://www.gnu.org/licenses/>.  */
24
25#define SIG_ATOMIC_TYPE   "int"
26
27#define INT8_TYPE         "signed char"
28#define INT16_TYPE        "short int"
29#define INT32_TYPE        "int"
30#define INT64_TYPE        (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
31#define UINT8_TYPE        "unsigned char"
32#define UINT16_TYPE       "short unsigned int"
33#define UINT32_TYPE       "unsigned int"
34#define UINT64_TYPE       (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
35
36#define INT_LEAST8_TYPE   INT8_TYPE
37#define INT_LEAST16_TYPE  INT16_TYPE
38#define INT_LEAST32_TYPE  INT32_TYPE
39#define INT_LEAST64_TYPE  (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
40#define UINT_LEAST8_TYPE  UINT8_TYPE
41#define UINT_LEAST16_TYPE UINT16_TYPE
42#define UINT_LEAST32_TYPE UINT32_TYPE
43#define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
44
45#ifdef CHAR_FAST8
46#define INT_FAST8_TYPE    (LONG_TYPE_SIZE == 64 ? "int" : "signed char")
47#else
48#define INT_FAST8_TYPE    INT32_TYPE
49#endif
50#ifdef SHORT_FAST16
51#define INT_FAST16_TYPE   (LONG_TYPE_SIZE == 64 ? "int" : "short int")
52#else
53#define INT_FAST16_TYPE   INT32_TYPE
54#endif
55#define INT_FAST32_TYPE   INT32_TYPE
56#define INT_FAST64_TYPE   (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
57#ifdef CHAR_FAST8
58#define UINT_FAST8_TYPE   (LONG_TYPE_SIZE == 64 ? "unsigned int" : "unsigned char")
59#else
60#define UINT_FAST8_TYPE   UINT32_TYPE
61#endif
62#ifdef SHORT_FAST16
63#define UINT_FAST16_TYPE  (LONG_TYPE_SIZE == 64 ? "unsigned int" : "short unsigned int")
64#else
65#define UINT_FAST16_TYPE  UINT32_TYPE
66#endif
67#define UINT_FAST32_TYPE  UINT32_TYPE
68#define UINT_FAST64_TYPE  (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
69
70#define INTPTR_TYPE       (LONG_TYPE_SIZE == 64 ?  INT64_TYPE :  INT32_TYPE)
71#define UINTPTR_TYPE      (LONG_TYPE_SIZE == 64 ? UINT64_TYPE : UINT32_TYPE)
72