Browse Source

Issue #23654: Fix faulthandler._stack_overflow() for the Intel C Compiler (ICC)

Issue #23654: Turn off ICC's tail call optimization for the stack_overflow
generator. ICC turns the recursive tail call into a loop.

Patch written by Matt Frank.
pull/224/head
Victor Stinner 11 years ago
parent
commit
19276f184f
  1. 1
      Misc/ACKS
  2. 9
      Modules/faulthandler.c

1
Misc/ACKS

@ -436,6 +436,7 @@ Doug Fort
Chris Foster
John Fouhy
Andrew Francis
Matt Frank
Stefan Franke
Martin Franklin
Kent Frazier

9
Modules/faulthandler.c

@ -911,7 +911,14 @@ faulthandler_fatal_error_py(PyObject *self, PyObject *args)
}
#if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION)
static Py_uintptr_t
#ifdef __INTEL_COMPILER
/* Issue #23654: Turn off ICC's tail call optimization for the
* stack_overflow generator. ICC turns the recursive tail call into
* a loop. */
# pragma intel optimization_level 0
#endif
static
Py_uintptr_t
stack_overflow(Py_uintptr_t min_sp, Py_uintptr_t max_sp, size_t *depth)
{
/* allocate 4096 bytes on the stack at each call */

Loading…
Cancel
Save