diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-04-16 19:47:06 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-04-16 19:47:06 +0000 |
commit | ae4759df00ac8662144fa63889f5accbf5f6c495 (patch) | |
tree | 70fea747c229202d4792239026ad3913c0df82d8 /clang/lib/Frontend/InitPreprocessor.cpp | |
parent | 17b2a1b4b0722d9f4588bb4d862e0f756653ecee (diff) | |
download | bcm5719-llvm-ae4759df00ac8662144fa63889f5accbf5f6c495.tar.gz bcm5719-llvm-ae4759df00ac8662144fa63889f5accbf5f6c495.zip |
Move -fms-extensions predefined macros into InitPreprocessor
If someone on Linux asks for -fms-extensions, there's no reason not to
define the feature test macros that MSVC defines.
llvm-svn: 206413
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r-- | clang/lib/Frontend/InitPreprocessor.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index a86fe514261..95d9e510f89 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -507,7 +507,19 @@ static void InitializePredefinedMacros(const TargetInfo &TI, Builder.defineMacro("__private_extern__", "extern"); } + if (LangOpts.MSCVersion != 0) + Builder.defineMacro("_MSC_VER", Twine(LangOpts.MSCVersion)); + if (LangOpts.MicrosoftExt) { + // Define feature support macros that MSVC provides. + Builder.defineMacro("_MSC_EXTENSIONS"); + + if (LangOpts.CPlusPlus11) { + Builder.defineMacro("_RVALUE_REFERENCES_V2_SUPPORTED"); + Builder.defineMacro("_RVALUE_REFERENCES_SUPPORTED"); + Builder.defineMacro("_NATIVE_NULLPTR_SUPPORTED"); + } + if (LangOpts.WChar) { // wchar_t supported as a keyword. Builder.defineMacro("_WCHAR_T_DEFINED"); |