Update nt/inc/stdint.h for PTRDIFF_MAX.
[bpt/emacs.git] / nt / inc / stdint.h
CommitLineData
9f8370e6
CS
1/* Replacement stdint.h file for building GNU Emacs on Windows.
2
3Copyright (C) 2011 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20#ifndef _NT_STDINT_H_
21#define _NT_STDINT_H_
22
23#ifdef __GNUC__
24# include_next <stdint.h> /* use stdint.h if available */
25#else /* !__GNUC__ */
26
27/* Minimum definitions to allow compilation with tool chains where
28 stdint.h is not available, e.g. Microsoft Visual Studio. */
29
30typedef unsigned int uint32_t;
f7b2cdf3
EZ
31#define INT32_MAX 2147483647
32/* "i64" is the non-standard suffix used by MSVC for 64-bit constants. */
33#define INT64_MAX 9223372036854775807i64
9f8370e6 34
0a47eac4
EZ
35#ifdef _WIN64
36 typedef __int64 intptr_t;
f7b2cdf3 37#define INTPTR_MAX INT64_MAX
0a47eac4
EZ
38#else
39 typedef int intptr_t;
f7b2cdf3 40#define INTPTR_MAX INT32_MAX
0a47eac4
EZ
41#endif
42
43#define uintmax_t unsigned __int64
f7b2cdf3 44#define PTRDIFF_MAX INTPTR_MAX
0a47eac4 45
9f8370e6
CS
46#endif /* !__GNUC__ */
47
48#endif /* _NT_STDINT_H_ */