Predefine __INTMAX_WIDTH__ for the future parameterization of INTMAX macros in

stdint.h.

llvm-svn: 89203
This commit is contained in:
Ken Dyck
2009-11-18 13:52:57 +00:00
parent acfb1dfa4d
commit c0c98291e0
2 changed files with 19 additions and 0 deletions

View File

@@ -237,6 +237,13 @@ static void DefineType(const char *MacroName, TargetInfo::IntType Ty,
DefineBuiltinMacro(Buf, MacroBuf);
}
static void DefineTypeWidth(const char *MacroName, TargetInfo::IntType Ty,
const TargetInfo &TI, std::vector<char> &Buf) {
char MacroBuf[60];
sprintf(MacroBuf, "%s=%d", MacroName, TI.getTypeWidth(Ty));
DefineBuiltinMacro(Buf, MacroBuf);
}
static void DefineExactWidthIntType(TargetInfo::IntType Ty,
const TargetInfo &TI, std::vector<char> &Buf) {
char MacroBuf[60];
@@ -383,6 +390,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
DefineType("__INTMAX_TYPE__", TI.getIntMaxType(), Buf);
DefineType("__UINTMAX_TYPE__", TI.getUIntMaxType(), Buf);
DefineTypeWidth("__INTMAX_WIDTH__", TI.getIntMaxType(), TI, Buf);
DefineType("__PTRDIFF_TYPE__", TI.getPtrDiffType(0), Buf);
DefineType("__INTPTR_TYPE__", TI.getIntPtrType(), Buf);
DefineType("__SIZE_TYPE__", TI.getSizeType(), Buf);