llvm-6502/include/Support/DataTypes.h.in
John Criswell 7ed43ad3ab Added support for stdint.h. It is now automatically included by
DataTypes.h.  So far, it doesn't seem to break Linux, Solaris, or MacOS X.
This should automatically include it for those people who need it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15006 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 16:12:29 +00:00

65 lines
2.2 KiB
C++

//===-- include/Support/DataTypes.h - Define fixed size types ---*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and is distributed under
// the University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains definitions to figure out the size of _HOST_ data types.
// This file is important because different host OS's define different macros,
// which makes portability tough. This file exports the following definitions:
//
// [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types
// [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values.
//
// No library is required when using these functinons.
//
//===----------------------------------------------------------------------===//
#ifndef SUPPORT_DATATYPES_H
#define SUPPORT_DATATYPES_H
// Note that this header's correct operation depends on __STDC_LIMIT_MACROS
// being defined. We would define it here, but in order to prevent Bad Things
// happening when system headers or C++ STL headers include stdint.h before
// we define it here, we define it on the g++ command line (in Makefile.rules).
#if !defined(__STDC_LIMIT_MACROS)
# error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"
#endif
#ifndef _MSC_VER
// Note that <inttypes.h> includes <stdint.h>, if this is a C99 system.
@INCLUDE_INTTYPES_H@
@INCLUDE_SYS_TYPES_H@
@INCLUDE_STDINT_H@
#else
// Visual C++ doesn't provide standard integer headers, but it does provide
// built-in data types.
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
typedef signed int int32_t;
typedef unsigned int uint32_t;
typedef signed int ssize_t;
#define INT8_MAX 127
#define INT8_MIN -128
#define UINT8_MAX 255
#define INT16_MAX 32767
#define INT16_MIN -32768
#define UINT16_MAX 65535
#define INT32_MAX 2147483647
#define INT32_MIN -2147483648
#define UINT32_MAX 4294967295U
#endif
#if !defined(INT64_MAX)
/* We couldn't determine INT64_MAX; default it. */
# define INT64_MAX 9223372036854775807LL
#endif
#if !defined(UINT64_MAX)
# define UINT64_MAX 0xffffffffffffffffULL
#endif
#endif /* SUPPORT_DATATYPES_H */