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
This commit is contained in:
Ken Dyck
2009-11-16 16:36:33 +00:00
parent 551861e7d9
commit 2dc8d5fa3e
4 changed files with 29 additions and 19 deletions

View File

@@ -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,