Skip to content

[3.15] gh-161185: Fix strict aliasing issue in Py_SETREF() macros family (#161186) - #161360

Merged
vstinner merged 1 commit into
python:3.15from
vstinner:setref15
Nov 4, 2026
Merged

vstinner merged 1 commit into
python:3.15from
vstinner:setref15

Conversation

@vstinner

@vstinner vstinner commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Py_SETREF(), Py_XSETREF() and Py_CLEAR() now use memcpy() to set _tmp_old_dst/_tmp_old_op to fix a strict aliasing issue.

Py_SETREF(), Py_XSETREF() and Py_CLEAR() now also cast _tmp_old_dst/_tmp_old_op to PyObject* when calling Py_DECREF()/Py_XDECREF() to avoid compiler warnings with the limited C API.

Add the _Py_TESTCEXT_NO_TYPEOF macro to undefine the _Py_TYPEOF macro.

(cherry picked from commit f8e65ee)

…ly (python#161186)

Py_SETREF(), Py_XSETREF() and Py_CLEAR() now use memcpy() to set
_tmp_old_dst/_tmp_old_op to fix a strict aliasing issue.

Py_SETREF(), Py_XSETREF() and Py_CLEAR() now also cast
_tmp_old_dst/_tmp_old_op to PyObject* when calling
Py_DECREF()/Py_XDECREF() to avoid compiler warnings with the limited
C API.

Add the _Py_TESTCEXT_NO_TYPEOF macro to undefine the _Py_TYPEOF
macro.

Co-authored-by: Nathan Goldbaum <nathan.goldbaum@gmail.com>
(cherry picked from commit f8e65ee)
@vstinner vstinner added the needs backport to 3.14 bugs and security fixes label Nov 4, 2026
@vstinner
vstinner enabled auto-merge (squash) November 4, 2026 22:09
@vstinner
vstinner merged commit 0dc1a96 into python:3.15 Nov 4, 2026
60 checks passed
@vstinner
vstinner deleted the setref15 branch November 4, 2026 22:10
@miss-islington-app

Copy link
Copy Markdown

Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

@bedevere-app

bedevere-app Bot commented Nov 4, 2026

Copy link
Copy Markdown

GH-161362 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Nov 4, 2026
vstinner added a commit that referenced this pull request Nov 4, 2026
…ily (GH-161186) (GH-161360) (#161362)

[3.15] gh-161185: Fix strict aliasing issue in Py_SETREF() macros family (GH-161186) (GH-161360)

gh-161185: Fix strict aliasing issue in Py_SETREF() macros family (GH-161186)

Py_SETREF(), Py_XSETREF() and Py_CLEAR() now use memcpy() to set
_tmp_old_dst/_tmp_old_op to fix a strict aliasing issue.

Py_SETREF(), Py_XSETREF() and Py_CLEAR() now also cast
_tmp_old_dst/_tmp_old_op to PyObject* when calling
Py_DECREF()/Py_XDECREF() to avoid compiler warnings with the limited
C API.

Add the _Py_TESTCEXT_NO_TYPEOF macro to undefine the _Py_TYPEOF
macro.

(cherry picked from commit f8e65ee)
(cherry picked from commit 0dc1a96)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Nathan Goldbaum <nathan.goldbaum@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant