]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-105059: Use GCC/clang extension for PyObject union (GH-107232) (#107236)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 25 Jul 2023 13:01:24 +0000 (06:01 -0700)
committerGitHub <noreply@github.com>
Tue, 25 Jul 2023 13:01:24 +0000 (13:01 +0000)
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@python.org>
Include/object.h

index 7564b9623be79f27e379963f46dff3099d7a3912..542f8d8c15a7c74cc1738c066f6ce19af7fbd016 100644 (file)
@@ -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