[Python-checkins] cpython (3.4): Issue #23654: Fix faulthandler._stack_overflow() for the Intel C Compiler (ICC)

victor.stinner python-checkins at python.org
Mon Mar 23 21:21:50 CET 2015


https://hg.python.org/cpython/rev/d6003de8ecc8
changeset: 95144:d6003de8ecc8
branch: 3.4
parent: 95142:6eb48b22ff5c
user: Victor Stinner <victor.stinner at gmail.com>
date: Mon Mar 23 21:20:27 2015 +0100
summary:
 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.
files:
 Misc/ACKS | 1 +
 Modules/faulthandler.c | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -436,6 +436,7 @@
 Chris Foster
 John Fouhy
 Andrew Francis
+Matt Frank
 Stefan Franke
 Martin Franklin
 Kent Frazier
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
--- a/Modules/faulthandler.c
+++ b/Modules/faulthandler.c
@@ -911,7 +911,14 @@
 }
 
 #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 */
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /