Upgrade Microsoft's __int8, __int16, __int32 and __int64 types from builtin defines to real types.

Otherwise statements like:
  __int64 var = __int64(0);

would be expanded to:
  long long var = long long(0);

and fail to compile.

llvm-svn: 130369
This commit is contained in:
Francois Pichet
2011-04-28 01:59:37 +00:00
parent b5fabb2f9f
commit 84133e41be
8 changed files with 26 additions and 11 deletions

View File

@@ -335,12 +335,6 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
}
if (LangOpts.Microsoft) {
// Filter out some microsoft extensions when trying to parse in ms-compat
// mode.
Builder.defineMacro("__int8", "__INT8_TYPE__");
Builder.defineMacro("__int16", "__INT16_TYPE__");
Builder.defineMacro("__int32", "__INT32_TYPE__");
Builder.defineMacro("__int64", "__INT64_TYPE__");
// Both __PRETTY_FUNCTION__ and __FUNCTION__ are GCC extensions, however
// VC++ appears to only like __FUNCTION__.
Builder.defineMacro("__PRETTY_FUNCTION__", "__FUNCTION__");