Commit 2ee0c45
gh-86199: Fix CI: move kwargs conversion out of the instruction body
Taking the address of a local (&dupkey) inside _MAKE_CALLARGS_A_TUPLE
prevents MSVC from emitting the required tail call in the tail-calling
interpreter build (error C4737). Move the mapping-to-dict conversion into
a new helper, _PyEval_KwargsToDict(), so the op body has no address-taken
locals.
Also update test_dict_merge: f(**d) no longer emits DICT_MERGE, so use
f(**d, **e) there and add a test that f(**d) traces through
_MAKE_CALLARGS_A_TUPLE without _DICT_MERGE.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>1 parent fc0af8f commit 2ee0c45
7 files changed
Lines changed: 61 additions & 221 deletions
File tree
- Include/internal
- Lib/test/test_capi
- Modules/_testinternalcapi
- Python
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
298 | 298 | | |
299 | 299 | | |
300 | 300 | | |
| 301 | + | |
301 | 302 | | |
302 | 303 | | |
303 | 304 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5800 | 5800 | | |
5801 | 5801 | | |
5802 | 5802 | | |
5803 | | - | |
| 5803 | + | |
| 5804 | + | |
5804 | 5805 | | |
5805 | 5806 | | |
5806 | 5807 | | |
5807 | | - | |
| 5808 | + | |
5808 | 5809 | | |
5809 | 5810 | | |
5810 | 5811 | | |
| |||
5815 | 5816 | | |
5816 | 5817 | | |
5817 | 5818 | | |
| 5819 | + | |
| 5820 | + | |
| 5821 | + | |
| 5822 | + | |
| 5823 | + | |
| 5824 | + | |
| 5825 | + | |
| 5826 | + | |
| 5827 | + | |
| 5828 | + | |
| 5829 | + | |
| 5830 | + | |
| 5831 | + | |
| 5832 | + | |
| 5833 | + | |
| 5834 | + | |
| 5835 | + | |
5818 | 5836 | | |
5819 | 5837 | | |
5820 | 5838 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5630 | 5630 | | |
5631 | 5631 | | |
5632 | 5632 | | |
5633 | | - | |
| 5633 | + | |
| 5634 | + | |
5634 | 5635 | | |
5635 | 5636 | | |
5636 | 5637 | | |
5637 | | - | |
5638 | | - | |
5639 | | - | |
5640 | | - | |
5641 | | - | |
5642 | | - | |
5643 | | - | |
5644 | | - | |
5645 | | - | |
5646 | | - | |
5647 | 5638 | | |
5648 | 5639 | | |
5649 | 5640 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3493 | 3493 | | |
3494 | 3494 | | |
3495 | 3495 | | |
| 3496 | + | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
| 3507 | + | |
| 3508 | + | |
| 3509 | + | |
| 3510 | + | |
| 3511 | + | |
| 3512 | + | |
| 3513 | + | |
| 3514 | + | |
| 3515 | + | |
3496 | 3516 | | |
3497 | 3517 | | |
3498 | 3518 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments