summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorKen Dyck <ken.dyck@onsemi.com>2009-11-16 16:36:33 +0000
committerKen Dyck <ken.dyck@onsemi.com>2009-11-16 16:36:33 +0000
commit2dc8d5fa3ea16c00ce01dd3eed74861489dd998f (patch)
treec8785a7320e5701be7c7d2a0c2f3e3ac778a4e7b /clang/lib/Frontend/InitPreprocessor.cpp
parent551861e7d9d4b9f2bd7806e3b8b6875580c2b3c9 (diff)
downloadbcm5719-llvm-2dc8d5fa3ea16c00ce01dd3eed74861489dd998f.tar.gz
bcm5719-llvm-2dc8d5fa3ea16c00ce01dd3eed74861489dd998f.zip
Parameterize the constant-generating macros in stdint.h with new built-in
__INTn_C_SUFFIX__ macros that are defined for types with corresponding constant suffixes (i.e. long and long long). llvm-svn: 88914
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 69680491319..9648620ea07 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -240,8 +240,16 @@ static void DefineType(const char *MacroName, TargetInfo::IntType Ty,
static void DefineExactWidthIntType(TargetInfo::IntType Ty,
const TargetInfo &TI, std::vector<char> &Buf) {
char MacroBuf[60];
- sprintf(MacroBuf, "__INT%d_TYPE__", TI.getTypeWidth(Ty));
+ int TypeWidth = TI.getTypeWidth(Ty);
+ sprintf(MacroBuf, "__INT%d_TYPE__", TypeWidth);
DefineType(MacroBuf, Ty, Buf);
+
+
+ const char *ConstSuffix = TargetInfo::getTypeConstantSuffix(Ty);
+ if (strlen(ConstSuffix) > 0) {
+ sprintf(MacroBuf, "__INT%d_C_SUFFIX__=%s", TypeWidth, ConstSuffix);
+ DefineBuiltinMacro(Buf, MacroBuf);
+ }
}
static void InitializePredefinedMacros(const TargetInfo &TI,
OpenPOWER on IntegriCloud