X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FSupport%2FDataTypes.h.in;h=512b349e73e848304b25f13beee64c575e0eefec;hb=fc82fabe00b0b820e3c0d7fc9e289bace0295f11;hp=c218193b932c45ac98cc592d48f50ad8dc94bd58;hpb=18d55dd700ea9d60b8e22f67170787903bcbd26e;p=oota-llvm.git diff --git a/include/llvm/Support/DataTypes.h.in b/include/llvm/Support/DataTypes.h.in index c218193b932..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,26 +37,65 @@ # 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@ -// Interix has u_int64_t, but not uint64_t -#if !defined(HAVE_UINT64_T) && defined(HAVE_U_INT64_T) +#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 +#ifdef HAVE_U_INT64_T typedef u_int64_t uint64_t; #else # error "Don't have a definition for uint64_t on this platform" #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 @@ -60,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 */