summaryrefslogtreecommitdiffstats
path: root/win/tclWinInt.h
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-10-02 07:58:50 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-10-02 07:58:50 (GMT)
commitab9b922b76e5a364b81263128b3231b5bbd85c36 (patch)
treeaee604b829e97e86e3c3c8fd1cd49cb39e21c96a /win/tclWinInt.h
parent228c6fd96ff315b9d17a84b2b532f33853102168 (diff)
downloadtcl-ab9b922b76e5a364b81263128b3231b5bbd85c36.zip
tcl-ab9b922b76e5a364b81263128b3231b5bbd85c36.tar.gz
tcl-ab9b922b76e5a364b81263128b3231b5bbd85c36.tar.bz2
Fix compilation with latest MinGW-w64 version 3.0: Conflict on EXCEPTION_REGISTRATION typedef, which means something completely different in MinGW-w64.
Diffstat (limited to 'win/tclWinInt.h')
-rw-r--r--win/tclWinInt.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/win/tclWinInt.h b/win/tclWinInt.h
index 2f6659c..3d5e275 100644
--- a/win/tclWinInt.h
+++ b/win/tclWinInt.h
@@ -14,6 +14,23 @@
#include "tclInt.h"
+#ifdef HAVE_NO_SEH
+/*
+ * Unlike Borland and Microsoft, we don't register exception handlers by
+ * pushing registration records onto the runtime stack. Instead, we register
+ * them by creating an TCLEXCEPTION_REGISTRATION within the activation record.
+ */
+
+typedef struct TCLEXCEPTION_REGISTRATION {
+ struct TCLEXCEPTION_REGISTRATION *link;
+ EXCEPTION_DISPOSITION (*handler)(
+ struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
+ void *ebp;
+ void *esp;
+ int status;
+} TCLEXCEPTION_REGISTRATION;
+#endif
+
/*
* The following specifies how much stack space TclpCheckStackSpace()
* ensures is available. TclpCheckStackSpace() is called by Tcl_EvalObj()