1 /* Definitions for <stdint.h> types on systems using GNU libc or uClibc.
2 Copyright (C) 2008-2022 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 Under Section 7 of GPL version 3, you are granted additional
17 permissions described in the GCC Runtime Library Exception, version
18 3.1, as published by the Free Software Foundation.
20 You should have received a copy of the GNU General Public License and
21 a copy of the GCC Runtime Library Exception along with this program;
22 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 <http://www.gnu.org/licenses/>. */
25 /* Systems using musl libc should use this header and make sure
26 OPTION_MUSL is defined correctly before using the TYPE macros. */
31 #define OPTION_MUSL_P(opts) 0
34 #define SIG_ATOMIC_TYPE "int"
36 #define INT8_TYPE "signed char"
37 #define INT16_TYPE "short int"
38 #define INT32_TYPE "int"
39 #define INT64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
40 #define UINT8_TYPE "unsigned char"
41 #define UINT16_TYPE "short unsigned int"
42 #define UINT32_TYPE "unsigned int"
43 #define UINT64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
45 #define INT_LEAST8_TYPE "signed char"
46 #define INT_LEAST16_TYPE "short int"
47 #define INT_LEAST32_TYPE "int"
48 #define INT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
49 #define UINT_LEAST8_TYPE "unsigned char"
50 #define UINT_LEAST16_TYPE "short unsigned int"
51 #define UINT_LEAST32_TYPE "unsigned int"
52 #define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
54 #define INT_FAST8_TYPE "signed char"
55 #define INT_FAST16_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long int" : "int")
56 #define INT_FAST32_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long int" : "int")
57 #define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
58 #define UINT_FAST8_TYPE "unsigned char"
59 #define UINT_FAST16_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long unsigned int" : "unsigned int")
60 #define UINT_FAST32_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long unsigned int" : "unsigned int")
61 #define UINT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
63 #define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int")
64 #define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int")