diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-06-30 06:30:56 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-06-30 06:30:56 +0000 |
commit | 7f3a545ba6ccfbe8b7f5268e4cfbee52ec2c4d4c (patch) | |
tree | 77d2a73f0f2c7221faf1dae7946942553f3e8baa /lib/Frontend/InitPreprocessor.cpp | |
parent | 96d38c100d5a37f7a3343c526507de5b50f68c27 (diff) |
Headers: Define __INT64_TYPE__ in terms of getInt64Type(), which isn't always
'long'. The practical upshot is so that the uint64_t we define in our stdint.h
ends up being compatible with that defined by gcc (at least on Darwin), which
otherwise could lead to type incompatibilities with other system headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107255 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/InitPreprocessor.cpp')
-rw-r--r-- | lib/Frontend/InitPreprocessor.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 0745568cb5..889b6e52a4 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -204,6 +204,12 @@ static void DefineTypeSizeof(llvm::StringRef MacroName, unsigned BitWidth, static void DefineExactWidthIntType(TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder) { int TypeWidth = TI.getTypeWidth(Ty); + + // Use the target specified int64 type, when appropriate, so that [u]int64_t + // ends up being defined in terms of the correct type. + if (TypeWidth == 64) + Ty = TI.getInt64Type(); + DefineType("__INT" + llvm::Twine(TypeWidth) + "_TYPE__", Ty, Builder); llvm::StringRef ConstSuffix(TargetInfo::getTypeConstantSuffix(Ty)); |