From 35b09e692ead67181755795352f1df12547fd4fa Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sat, 7 May 2016 12:32:15 +0200 Subject: Windows/x86: Add full exception interoperability. Contributed by Peter Cawley. --- doc/extensions.html | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'doc') diff --git a/doc/extensions.html b/doc/extensions.html index 7f712a62..368b527c 100644 --- a/doc/extensions.html +++ b/doc/extensions.html @@ -365,25 +365,30 @@ the toolchain used to compile LuaJIT: POSIX/x64, DWARF2 unwinding -GCC 4.3+ +GCC 4.3+, Clang Full +ARM -DLUAJIT_UNWIND_EXTERNAL +GCC, Clang +Full + + Other platforms, DWARF2 unwinding -GCC +GCC, Clang Limited - + Windows/x64 MSVC or WinSDK Full - + Windows/x86 Any -No +Full - + Other platforms Other compilers No @@ -432,14 +437,6 @@ C++ destructors.
  • Lua errors cannot be caught on the C++ side.
  • Throwing Lua errors across C++ frames will not call C++ destructors.
  • -
  • Additionally, on Windows/x86 with SEH-based C++ exceptions: -it's not safe to throw a Lua error across any frames containing -a C++ function with any try/catch construct or using variables with -(implicit) destructors. This also applies to any functions which may be -inlined in such a function. It doesn't matter whether lua_error() -is called inside or outside of a try/catch or whether any object actually -needs to be destroyed: the SEH chain is corrupted and this will eventually -lead to the termination of the process.

  • -- cgit v1.2.3-55-g6feb