summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-06-28 03:13:16 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-06-28 03:13:16 +0000
commit017cf35d7c695cda3c1af49501a3f80c51eab672 (patch)
tree3257357597573e77c8cdb6c3844c9ce05e886b89 /clang/lib/Basic
parent2916a612cd7b8ba6fc74c07af0e5c89fdb72e9cd (diff)
downloadbcm5719-llvm-017cf35d7c695cda3c1af49501a3f80c51eab672.tar.gz
bcm5719-llvm-017cf35d7c695cda3c1af49501a3f80c51eab672.zip
[clang-cl] Define _MSVC_LANG
Recently, Microsoft added support for a flag, /std, which controls which version of the language rules MSVC should use. MSVC hasn't updated __cplusplus though. Instead, they added a new macro, _MSVC_LANG, which is defined in a similar fashion to __cplusplus. This is used to indicate which mode the compiler is in. llvm-svn: 273987
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index c0e2290d388..440e291eef1 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -734,6 +734,13 @@ protected:
if (Opts.CPlusPlus11 && Opts.isCompatibleWithMSVC(LangOptions::MSVC2015))
Builder.defineMacro("_HAS_CHAR16_T_LANGUAGE_SUPPORT", Twine(1));
+
+ if (Opts.isCompatibleWithMSVC(LangOptions::MSVC2015)) {
+ if (Opts.CPlusPlus1z)
+ Builder.defineMacro("_MSVC_LANG", "201403L");
+ else if (Opts.CPlusPlus14)
+ Builder.defineMacro("_MSVC_LANG", "201402L");
+ }
}
if (Opts.MicrosoftExt) {
OpenPOWER on IntegriCloud