[Python-checkins] [3.12] gh-105059: Fix MSCV compiler warning on PyObject union (GH-107239) (#107248)

vstinner webhook-mailer at python.org
Tue Jul 25 11:35:53 EDT 2023


https://github.com/python/cpython/commit/9c31d9405027cea9c2d039ade672d604663ed5b0
commit: 9c31d9405027cea9c2d039ade672d604663ed5b0
branch: 3.12
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: vstinner <vstinner at python.org>
date: 2023-07-25T15:35:49Z
summary:

[3.12] gh-105059: Fix MSCV compiler warning on PyObject union (GH-107239) (#107248)

gh-105059: Fix MSCV compiler warning on PyObject union (GH-107239)

Use pragma to ignore the MSCV compiler warning on the PyObject
nameless union.
(cherry picked from commit 1c8fe9bdb624d356643ee569151a9e4f2963179a)

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 542f8d8c15a7c..77434e3bc73c1 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -165,10 +165,17 @@ 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
+#ifdef _MSC_VER
+    // Ignore MSC warning C4201: "nonstandard extension used:
+    // nameless struct/union"
+    __pragma(warning(push))
+    __pragma(warning(disable: 4201))
 #endif
     union {
        Py_ssize_t ob_refcnt;
@@ -176,6 +183,10 @@ struct _object {
        PY_UINT32_T ob_refcnt_split[2];
 #endif
     };
+#ifdef _MSC_VER
+    __pragma(warning(pop))
+#endif
+
     PyTypeObject *ob_type;
 };
 



More information about the Python-checkins mailing list