On 10/06/2014 23:46, Hans Wennborg wrote:
Author: hans
Date: Tue Jun 10 15:46:38 2014
New Revision: 210582
URL: http://llvm.org/viewvc/llvm-project?rev=210582&view=rev
Log:
Do not predefine __EXCEPTIONS in clang-cl (PR19977)
Patch by Ehsan Akhgari! (Test tweak by me.)
Differential Revision: http://reviews.llvm.org/D4065
Added:
cfe/trunk/test/Frontend/exceptions.c
Modified:
cfe/trunk/lib/Frontend/InitPreprocessor.cpp
Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=210582&r1=210581&r2=210582&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original)
+++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Tue Jun 10 15:46:38 2014
@@ -491,7 +491,7 @@ static void InitializePredefinedMacros(c
Builder.defineMacro("__BLOCKS__");
}
- if (LangOpts.CXXExceptions)
+ if (!LangOpts.MSVCCompat && LangOpts.CXXExceptions)
Builder.defineMacro("__EXCEPTIONS");
if (LangOpts.RTTI)
Builder.defineMacro("__GXX_RTTI");
It could be nice to go ahead and put the __GXX /__GNU etc. macros behind
a GNUCompat LangOpt for consistency and self-documentation, even if
that's just the inverse of MSVCCompat in practice.
Alp.
Added: cfe/trunk/test/Frontend/exceptions.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/exceptions.c?rev=210582&view=auto
==============================================================================
--- cfe/trunk/test/Frontend/exceptions.c (added)
+++ cfe/trunk/test/Frontend/exceptions.c Tue Jun 10 15:46:38 2014
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
--
http://www.nuanti.com
the browser experts
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits