LLVM
20.0.0git
include
llvm-c
DataTypes.h
Go to the documentation of this file.
1
/*===-- include/llvm-c/DataTypes.h - Define fixed size types ------*- C -*-===*\
2
|* *|
3
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
4
|* Exceptions. *|
5
|* See https://llvm.org/LICENSE.txt for license information. *|
6
|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
7
|* *|
8
|*===----------------------------------------------------------------------===*|
9
|* *|
10
|* This file contains definitions to figure out the size of _HOST_ data types.*|
11
|* This file is important because different host OS's define different macros,*|
12
|* which makes portability tough. This file exports the following *|
13
|* definitions: *|
14
|* *|
15
|* [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types*|
16
|* [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values. *|
17
|* *|
18
|* No library is required when using these functions. *|
19
|* *|
20
|*===----------------------------------------------------------------------===*/
21
22
/* Please leave this file C-compatible. */
23
24
#ifndef LLVM_C_DATATYPES_H
25
#define LLVM_C_DATATYPES_H
26
27
#include <inttypes.h>
28
#include <stdint.h>
29
30
#ifndef _MSC_VER
31
32
#if !defined(UINT32_MAX)
33
# error "The standard header <cstdint> is not C++11 compliant. Must #define "
\
34
"__STDC_LIMIT_MACROS before #including llvm-c/DataTypes.h"
35
#endif
36
37
#if !defined(UINT32_C)
38
# error "The standard header <cstdint> is not C++11 compliant. Must #define "
\
39
"__STDC_CONSTANT_MACROS before #including llvm-c/DataTypes.h"
40
#endif
41
42
/* Note that <inttypes.h> includes <stdint.h>, if this is a C99 system. */
43
#include <sys/types.h>
44
45
#ifdef _AIX
46
// GCC is strict about defining large constants: they must have LL modifier.
47
#undef INT64_MAX
48
#undef INT64_MIN
49
#endif
50
51
#else
/* _MSC_VER */
52
#ifdef __cplusplus
53
#include <cstddef>
54
#include <cstdlib>
55
#else
56
#include <stddef.h>
57
#include <stdlib.h>
58
#endif
59
#include <sys/types.h>
60
61
#if defined(_WIN64)
62
typedef
signed
__int64 ssize_t;
63
#else
64
typedef
signed
int
ssize_t;
65
#endif
/* _WIN64 */
66
67
#endif
/* _MSC_VER */
68
69
/* Set defaults for constants which we cannot find. */
70
#if !defined(INT64_MAX)
71
# define INT64_MAX 9223372036854775807LL
72
#endif
73
#if !defined(INT64_MIN)
74
# define INT64_MIN ((-INT64_MAX)-1)
75
#endif
76
#if !defined(UINT64_MAX)
77
# define UINT64_MAX 0xffffffffffffffffULL
78
#endif
79
80
#endif
/* LLVM_C_DATATYPES_H */
Generated on Wed Nov 20 2024 04:34:28 for LLVM by
1.9.6