From ae4759df00ac8662144fa63889f5accbf5f6c495 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Wed, 16 Apr 2014 19:47:06 +0000 Subject: 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 --- clang/lib/Frontend/InitPreprocessor.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'clang/lib/Frontend/InitPreprocessor.cpp') 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"); -- cgit v1.2.3