From b8cd9c9de9b41aac2451a8df0bdd0c795bc093d5 Mon Sep 17 00:00:00 2001 From: Reid Kleckner <reid@kleckner.net> Date: Mon, 4 May 2015 20:53:51 +0000 Subject: [PATCH] Update MSVC compatibility doc note about exceptions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236458 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/MSVCCompatibility.rst | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/MSVCCompatibility.rst b/docs/MSVCCompatibility.rst index 1dba9e865b6..8f5d70e85ee 100644 --- a/docs/MSVCCompatibility.rst +++ b/docs/MSVCCompatibility.rst @@ -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. -- GitLab