From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Tue, 25 Jul 2023 13:01:24 +0000 (-0700) Subject: [3.12] gh-105059: Use GCC/clang extension for PyObject union (GH-107232) (#107236) X-Git-Tag: v3.12.0rc1~75 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0cf5f6a6db0c50e46687de1fd99f90d7f85f69ea;p=thirdparty%2FPython%2Fcpython.git [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 --- diff --git a/Include/object.h b/Include/object.h index 7564b9623be7..542f8d8c15a7 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