diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2004-10-18 22:14:48 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2004-10-18 22:14:48 +0000 |
commit | 9cba8b39beb00533c259ad303174922ac116b6f9 (patch) | |
tree | 84f46b3ac1450a68ef4254082d80f55f7f054d9f | |
parent | b18121e6a9bafce60a24ff3fb8cfab211b0a3c44 (diff) | |
download | bcm5719-llvm-9cba8b39beb00533c259ad303174922ac116b6f9.tar.gz bcm5719-llvm-9cba8b39beb00533c259ad303174922ac116b6f9.zip |
Move code to redefine INT64_{MIN,MAX} on AIX/PowerPC to a separate header,
because #undef becomes commented out in DataTypes.h.in due to autoheader
llvm-svn: 17135
-rw-r--r-- | llvm/include/llvm/Support/DataTypes.h.in | 12 | ||||
-rw-r--r-- | llvm/include/llvm/Support/DataTypesFix.h | 29 |
2 files changed, 31 insertions, 10 deletions
diff --git a/llvm/include/llvm/Support/DataTypes.h.in b/llvm/include/llvm/Support/DataTypes.h.in index 9da54239469..2ac1e1721e5 100644 --- a/llvm/include/llvm/Support/DataTypes.h.in +++ b/llvm/include/llvm/Support/DataTypes.h.in @@ -49,16 +49,8 @@ #include <stdint.h> #endif -#if defined(_POWER) && defined(_AIX) -// GCC is strict about defining large constants: they must have LL modifier. -// We will catch INT64_MAX in the default case below. -#undef INT64_MAX -// AIX #defines INT64_MIN as (-INT64_MAX-1), or -9223372036854775808 which GCC -// complains about as `integer constant is so large that it is unsigned', so -// set INT64_MIN to be one above that: -#undef INT64_MIN -#define INT64_MIN -9223372036854775807LL -#endif +// Fix AIX definitions of INT64_{MIN,MAX} +#include "llvm/Support/DataTypesFix.h" // Handle incorrect definition of uint64_t as u_int64_t #ifndef HAVE_UINT64_T diff --git a/llvm/include/llvm/Support/DataTypesFix.h b/llvm/include/llvm/Support/DataTypesFix.h new file mode 100644 index 00000000000..c73998d1d3f --- /dev/null +++ b/llvm/include/llvm/Support/DataTypesFix.h @@ -0,0 +1,29 @@ +//===-- include/Support/DataTypesFix.h - Fix datatype defs ------*- 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 overrides default system-defined types and limits which cannot be +// done in DataTypes.h.in because it is processed by autoheader first, which +// comments out any #undef statement +// +//===----------------------------------------------------------------------===// + +#ifndef SUPPORT_DATATYPESFIX_H +#define SUPPORT_DATATYPESFIX_H + +#include "llvm/Config/config.h" + +#if defined(_POWER) && defined(_AIX) +// GCC is strict about defining large constants: they must have LL modifier. +#undef INT64_MAX +#define INT64_MAX 9223372036854775807LL +#undef INT64_MIN +#define INT64_MIN (-INT64_MAX-1) +#endif + +#endif /* SUPPORT_DATATYPESFIX_H */ |