mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
GH-94329: Don't raise on excessive stack consumption (GH-94421) (GH-94446)
(cherry picked from commit b152bf448b
)
This commit is contained in:
parent
48a739ec10
commit
f58c366a73
3 changed files with 9 additions and 6 deletions
|
@ -1207,6 +1207,12 @@ class TestExpressionStackSize(unittest.TestCase):
|
||||||
code += " x and x\n" * self.N
|
code += " x and x\n" * self.N
|
||||||
self.check_stack_size(code)
|
self.check_stack_size(code)
|
||||||
|
|
||||||
|
def test_stack_3050(self):
|
||||||
|
M = 3050
|
||||||
|
code = "x," * M + "=t"
|
||||||
|
# This raised on 3.10.0 to 3.10.5
|
||||||
|
compile(code, "<foo>", "single")
|
||||||
|
|
||||||
|
|
||||||
class TestStackSizeStability(unittest.TestCase):
|
class TestStackSizeStability(unittest.TestCase):
|
||||||
# Check that repeating certain snippets doesn't increase the stack size
|
# Check that repeating certain snippets doesn't increase the stack size
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Compile and run code with unpacking of extremely large sequences (1000s of elements).
|
||||||
|
Such code failed to compile. It now compiles and runs correctly.
|
|
@ -8391,12 +8391,7 @@ assemble(struct compiler *c, int addNone)
|
||||||
if (maxdepth < 0) {
|
if (maxdepth < 0) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
if (maxdepth > MAX_ALLOWED_STACK_USE) {
|
/* TO DO -- For 3.12, make sure that `maxdepth <= MAX_ALLOWED_STACK_USE` */
|
||||||
PyErr_Format(PyExc_SystemError,
|
|
||||||
"excessive stack use: stack is %d deep",
|
|
||||||
maxdepth);
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (label_exception_targets(entryblock)) {
|
if (label_exception_targets(entryblock)) {
|
||||||
goto error;
|
goto error;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue