Skip to content

Excessive stack usage for clang-cl debug builds on Windows #157789

Description

@chris-eibl

test.test_call.TestRecursion.test_margin_is_sufficient fails on the AMD64 Windows Server 2025 Clang 3.14 buildbot.

The table lists safe_margin before it is multiplied, because 3.14 and main use different extra percents

cpython/Lib/test/test_call.py

Lines 1105 to 1107 in 5b34363

# Add an (arbitrary) extra 25% for safety
safe_margin = safe_margin * 5 / 4
self.assertLess(safe_margin, _testinternalcapi.get_stack_margin())

and _testinternalcapi.get_stack_margin(), which is actually just _PyOS_STACK_MARGIN_BYTES.

branch compiler build safe_margin _PyOS_STACK_MARGIN_BYTES
main MSC v.1951 debug 20080 32768
main clang-cl 22.1.3 debug 26032 32768
main clang-cl 22.1.3 release 1200 16384
3.14 MSC v.1944 debug 23168 32768
3.14 clang-cl 22.1.3 debug 33920 32768
3.14 clang-cl 22.1.3 release 992 16384
3.14 clang-cl 22.1.3 debug with -Og 1536 32768

Using -Og drastically improves stack usage.

Linked PRs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions