diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-06-28 03:13:16 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-06-28 03:13:16 +0000 |
commit | 017cf35d7c695cda3c1af49501a3f80c51eab672 (patch) | |
tree | 3257357597573e77c8cdb6c3844c9ce05e886b89 /clang/lib/Basic | |
parent | 2916a612cd7b8ba6fc74c07af0e5c89fdb72e9cd (diff) | |
download | bcm5719-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.cpp | 7 |
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) { |