Update MSVC compatibility doc note about exceptions
authorReid Kleckner <reid@kleckner.net>
Mon, 4 May 2015 20:53:51 +0000 (20:53 +0000)
committerReid Kleckner <reid@kleckner.net>
Mon, 4 May 2015 20:53:51 +0000 (20:53 +0000)
llvm-svn: 236458

clang/docs/MSVCCompatibility.rst

index 1dba9e8..8f5d70e 100644 (file)
@@ -84,9 +84,16 @@ The status of major ABI-impacting C++ features:
 * RTTI: :good:`Complete`.  Generation of RTTI data structures has been
   finished, along with support for the ``/GR`` flag.
 
-* Exceptions and SEH: :partial:`Minimal`.  Clang can parse both constructs, but
-  does not know how to emit compatible handlers.  Clang can throw and rethrow
-  C++ exceptions.
+* Exceptions and SEH: :partial:`Partial`.  C++ exceptions (``try`` / ``catch``)
+  and structured exceptions (``__try`` / ``__except`` / ``__finally``) mostly
+  work on x64. 32-bit exception handling support is being worked on.  LLVM does
+  not model asynchronous exceptions, so it is currently impossible to catch an
+  asynchronous exception generated in the same frame as the catching ``__try``.
+  C++ exception specifications are ignored, but this is `consistent with Visual
+  C++`_.
+
+.. _consistent with Visual C++:
+  https://msdn.microsoft.com/en-us/library/wfa0edys.aspx
 
 * Thread-safe initialization of local statics: :none:`Unstarted`.  We are ABI
   compatible with MSVC 2013, which does not support thread-safe local statics.