summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/cygtls.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/cygtls.cc')
-rw-r--r--winsup/cygwin/cygtls.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc
index 1e6ff4dd0..fa755168c 100644
--- a/winsup/cygwin/cygtls.cc
+++ b/winsup/cygwin/cygtls.cc
@@ -240,7 +240,7 @@ _cygtls::set_siginfo (sigpacket *pack)
extern "C" DWORD __stdcall RtlUnwind (void *, void *, void *, DWORD);
int
-_cygtls::handle_threadlist_exception (EXCEPTION_RECORD *e, void *frame, CONTEXT *c, void *)
+_cygtls::handle_threadlist_exception (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *c, void *)
{
if (e->ExceptionCode != STATUS_ACCESS_VIOLATION)
{
@@ -281,6 +281,8 @@ _cygtls::init_exception_handler (exception_handler *eh)
{
el.handler = eh;
el.prev = _except_list;
+ if (!el.prev->prev && !el.prev->handler)
+ el.prev = ⪙
_except_list = ⪙
}