summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-06-10 20:46:38 +0000
committerHans Wennborg <hans@hanshq.net>2014-06-10 20:46:38 +0000
commit35bbf1cf8a2ec3bf2526f1982d97a9f6a5aec347 (patch)
tree394695877e3b99189b0aa2774c8805803fc0a8b3
parent826ba908e2313db7b79fd88f06108205cd323463 (diff)
downloadbcm5719-llvm-35bbf1cf8a2ec3bf2526f1982d97a9f6a5aec347.tar.gz
bcm5719-llvm-35bbf1cf8a2ec3bf2526f1982d97a9f6a5aec347.zip
Do not predefine __EXCEPTIONS in clang-cl (PR19977)
Patch by Ehsan Akhgari! (Test tweak by me.) Differential Revision: http://reviews.llvm.org/D4065 llvm-svn: 210582
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp2
-rw-r--r--clang/test/Frontend/exceptions.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index fb52eb489e0..dbb59b4f9f1 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -491,7 +491,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
Builder.defineMacro("__BLOCKS__");
}
- if (LangOpts.CXXExceptions)
+ if (!LangOpts.MSVCCompat && LangOpts.CXXExceptions)
Builder.defineMacro("__EXCEPTIONS");
if (LangOpts.RTTI)
Builder.defineMacro("__GXX_RTTI");
diff --git a/clang/test/Frontend/exceptions.c b/clang/test/Frontend/exceptions.c
new file mode 100644
index 00000000000..4bbaaa39bfa
--- /dev/null
+++ b/clang/test/Frontend/exceptions.c
@@ -0,0 +1,6 @@
+// RUN: %clang_cc1 -fms-compatibility -fexceptions -fcxx-exceptions -verify %s
+// expected-no-diagnostics
+
+#if defined(__EXCEPTIONS)
+#error __EXCEPTIONS should not be defined.
+#endif
OpenPOWER on IntegriCloud