From 627d528c62755b9cd130206d04cdafe7f262c7f8 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 25 Jul 2023 14:27:48 +0200 Subject: [PATCH] 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 --- Include/object.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Include/object.h b/Include/object.h index 7564b9623be79f..542f8d8c15a7c7 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