[Python-checkins] [3.12] gh-105059: Use GCC/clang extension for PyObject union (GH-107232) (#107236)

vstinner webhook-mailer at python.org
Tue Jul 25 09:01:30 EDT 2023


https://github.com/python/cpython/commit/0cf5f6a6db0c50e46687de1fd99f90d7f85f69ea
commit: 0cf5f6a6db0c50e46687de1fd99f90d7f85f69ea
branch: 3.12
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: vstinner <vstinner at python.org>
date: 2023-07-25T13:01:24Z
summary:

[3.12] gh-105059: Use GCC/clang extension for PyObject union (GH-107232) (#107236)

gh-105059: Use GCC/clang extension for PyObject union (GH-107232)

Anonymous union is new in C11. To prevent compiler warning
when using -pedantic compiler option, use Clang and GCC
extension on C99 and older.
(cherry picked from commit 6261585d63a31835b65d445d99dc14cca3fe9cf5)

Co-authored-by: Victor Stinner <vstinner at python.org>

files:
M Include/object.h

diff --git a/Include/object.h b/Include/object.h
index 7564b9623be79..542f8d8c15a7c 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -165,6 +165,11 @@ check by comparing the reference count field to the immortality reference count.
  */
 struct _object {
     _PyObject_HEAD_EXTRA
+#if (defined(__GNUC__) || defined(__clang__)) \
+        && !(defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L)
+    // On C99 and older, anonymous union is a GCC and clang extension
+    __extension__
+#endif
     union {
        Py_ssize_t ob_refcnt;
 #if SIZEOF_VOID_P > 4



More information about the Python-checkins mailing list