diff options
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index ee550915f..228d2c8e2 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -710,11 +710,10 @@ setup_handler (int sig, void *handler, struct sigaction& siga, _threadinfo *tls) for (int i = 0; i < CALL_HANDLER_RETRY; i++) { - __stack_t retaddr; __stack_t *retaddr_on_stack = tls->stackptr - 1; - if (retaddr_on_stack >= tls->stack - && (retaddr = InterlockedExchange ((LONG *) retaddr_on_stack, 0))) + if (retaddr_on_stack >= tls->stack) { + __stack_t retaddr = InterlockedExchange ((LONG *) retaddr_on_stack, 0); if (!retaddr) continue; tls->reset_exception (); |