X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FSupport%2FDataTypes.h.in;h=512b349e73e848304b25f13beee64c575e0eefec;hb=13d57320bd212483463d4f8992d5787b29eda5df;hp=6b3aee8ce62efec9740e3debb7c1f6680cb6b563;hpb=2d3dcb6a55c1c4a83b8e13e7cfd2e55f8cfe4740;p=oota-llvm.git diff --git a/include/llvm/Support/DataTypes.h.in b/include/llvm/Support/DataTypes.h.in index 6b3aee8ce62..512b349e73e 100644 --- a/include/llvm/Support/DataTypes.h.in +++ b/include/llvm/Support/DataTypes.h.in @@ -1,10 +1,10 @@ //===-- 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 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. @@ -21,7 +21,13 @@ #ifndef SUPPORT_DATATYPES_H #define SUPPORT_DATATYPES_H -#include +#undef HAVE_SYS_TYPES_H +#undef HAVE_INTTYPES_H +#undef HAVE_STDINT_H +#undef HAVE_UINT64_T +#undef HAVE_U_INT64_T + +#ifndef _MSC_VER // 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 @@ -31,11 +37,28 @@ # error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h" #endif -#ifndef _MSC_VER // Note that includes , if this is a C99 system. -@INCLUDE_INTTYPES_H@ -@INCLUDE_SYS_TYPES_H@ -@INCLUDE_STDINT_H@ +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#ifdef HAVE_INTTYPES_H +#include +#endif + +#ifdef HAVE_STDINT_H +#include +#endif + +#ifdef __cplusplus +#include +#else +#include +#endif + +#ifdef _AIX +#include "llvm/Support/AIXDataTypesFix.h" +#endif // Handle incorrect definition of uint64_t as u_int64_t #ifndef HAVE_UINT64_T @@ -46,14 +69,33 @@ typedef u_int64_t uint64_t; #endif #endif -#else +#ifdef _OpenBSD_ +#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 + +#else /* _MSC_VER */ // Visual C++ doesn't provide standard integer headers, but it does provide // built-in data types. +#include +#include +#include typedef __int64 int64_t; typedef unsigned __int64 uint64_t; -typedef signed int int32_t; +typedef signed int int32_t; typedef unsigned int uint32_t; -typedef signed int ssize_t; +typedef short int16_t; +typedef unsigned short uint16_t; +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed int ssize_t; #define INT8_MAX 127 #define INT8_MIN -128 #define UINT8_MAX 255 @@ -63,14 +105,27 @@ typedef signed int ssize_t; #define INT32_MAX 2147483647 #define INT32_MIN -2147483648 #define UINT32_MAX 4294967295U -#endif +#endif /* _MSC_VER */ +/* Set defaults for constants which we cannot find. */ #if !defined(INT64_MAX) -/* We couldn't determine INT64_MAX; default it. */ # define INT64_MAX 9223372036854775807LL #endif +#if !defined(INT64_MIN) +# define INT64_MIN ((-INT64_MAX)-1) +#endif #if !defined(UINT64_MAX) # define UINT64_MAX 0xffffffffffffffffULL #endif +#if __GNUC__ > 3 +#define END_WITH_NULL __attribute__((sentinel)) +#else +#define END_WITH_NULL +#endif + +#ifndef HUGE_VALF +#define HUGE_VALF (float)HUGE_VAL +#endif + #endif /* SUPPORT_DATATYPES_H */