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

Reply via email to