https://github.com/python/cpython/commit/fe187fae8d8321f1b8d3c9560a35efe904de4217
commit: fe187fae8d8321f1b8d3c9560a35efe904de4217
branch: main
author: Charlie Lin <t...@gmx.us>
committer: ZeroIntensity <zintensity...@gmail.com>
date: 2025-07-07T12:56:14-04:00
summary:

 gh-135906: Use `_PyObject_CAST` in internal headers (GH-135892)

Fixes build errors encountered in python-greenlet/greenlet#450 when building 
greenlet on the free-threaded build.

---------

Co-authored-by: Peter Bierma <zintensity...@gmail.com>
Co-authored-by: Victor Stinner <vstin...@python.org>

files:
A Misc/NEWS.d/next/C_API/2025-06-25-01-03-10.gh-issue-135906.UBrCWq.rst
M Include/internal/pycore_object.h
M Include/internal/pycore_stackref.h

diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h
index 8fe9875fae0687..40f8ca68c00b72 100644
--- a/Include/internal/pycore_object.h
+++ b/Include/internal/pycore_object.h
@@ -614,7 +614,7 @@ static inline PyObject *
 _Py_XGetRef(PyObject **ptr)
 {
     for (;;) {
-        PyObject *value = _Py_atomic_load_ptr(ptr);
+        PyObject *value = _PyObject_CAST(_Py_atomic_load_ptr(ptr));
         if (value == NULL) {
             return value;
         }
@@ -629,7 +629,7 @@ _Py_XGetRef(PyObject **ptr)
 static inline PyObject *
 _Py_TryXGetRef(PyObject **ptr)
 {
-    PyObject *value = _Py_atomic_load_ptr(ptr);
+    PyObject *value = _PyObject_CAST(_Py_atomic_load_ptr(ptr));
     if (value == NULL) {
         return value;
     }
diff --git a/Include/internal/pycore_stackref.h 
b/Include/internal/pycore_stackref.h
index 48a40a4c3479c7..6bf82d8322f508 100644
--- a/Include/internal/pycore_stackref.h
+++ b/Include/internal/pycore_stackref.h
@@ -829,7 +829,7 @@ _Py_TryIncrefCompareStackRef(PyObject **src, PyObject *op, 
_PyStackRef *out)
 static inline int
 _Py_TryXGetStackRef(PyObject **src, _PyStackRef *out)
 {
-    PyObject *op = _Py_atomic_load_ptr_relaxed(src);
+    PyObject *op = _PyObject_CAST(_Py_atomic_load_ptr_relaxed(src));
     if (op == NULL) {
         *out = PyStackRef_NULL;
         return 1;
diff --git 
a/Misc/NEWS.d/next/C_API/2025-06-25-01-03-10.gh-issue-135906.UBrCWq.rst 
b/Misc/NEWS.d/next/C_API/2025-06-25-01-03-10.gh-issue-135906.UBrCWq.rst
new file mode 100644
index 00000000000000..7852759a702804
--- /dev/null
+++ b/Misc/NEWS.d/next/C_API/2025-06-25-01-03-10.gh-issue-135906.UBrCWq.rst
@@ -0,0 +1 @@
+Fix compilation errors when compiling the internal headers with a C++ compiler.

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: arch...@mail-archive.com

Reply via email to