summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-04-16 19:47:06 +0000
committerReid Kleckner <reid@kleckner.net>2014-04-16 19:47:06 +0000
commitae4759df00ac8662144fa63889f5accbf5f6c495 (patch)
tree70fea747c229202d4792239026ad3913c0df82d8 /clang/lib/Frontend/InitPreprocessor.cpp
parent17b2a1b4b0722d9f4588bb4d862e0f756653ecee (diff)
downloadbcm5719-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.cpp12
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");
OpenPOWER on IntegriCloud