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>
*/
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