summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-07-25 17:28:16 (GMT)
committerGitHub <noreply@github.com>2023-07-25 17:28:16 (GMT)
commit6a43cce32b66e0f66992119dd82959069b6f324a (patch)
tree5dd7b804b5e8c874b8a7b64a7ac6f464e578131a
parentfabcbe9c12688eb9a902a5c89cb720ed373625c5 (diff)
downloadcpython-6a43cce32b66e0f66992119dd82959069b6f324a.zip
cpython-6a43cce32b66e0f66992119dd82959069b6f324a.tar.gz
cpython-6a43cce32b66e0f66992119dd82959069b6f324a.tar.bz2
gh-107249: Implement Py_UNUSED() for MSVC (#107250)
Fix warnings C4100 in Py_UNUSED() when Python is built with "cl /W4". Example with this function included by Python.h: static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { return 1; } Without this change, building a C program with "cl /W4" which just includes Python.h emits the warning: Include\cpython/unicodeobject.h(199): warning C4100: '_unused_op': unreferenced formal parameter This change fix this warning.
-rw-r--r--Include/pymacro.h9
-rw-r--r--Misc/NEWS.d/next/C API/2023-07-25-17-23-08.gh-issue-107249.xqk2ke.rst2
2 files changed, 11 insertions, 0 deletions
diff --git a/Include/pymacro.h b/Include/pymacro.h
index 342d2a7..9d264fe 100644
--- a/Include/pymacro.h
+++ b/Include/pymacro.h
@@ -118,6 +118,15 @@
*/
#if defined(__GNUC__) || defined(__clang__)
# define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
+#elif defined(_MSC_VER)
+ // Disable warning C4100: unreferenced formal parameter,
+ // declare the parameter,
+ // restore old compiler warnings.
+# define Py_UNUSED(name) \
+ __pragma(warning(push)) \
+ __pragma(warning(suppress: 4100)) \
+ _unused_ ## name \
+ __pragma(warning(pop))
#else
# define Py_UNUSED(name) _unused_ ## name
#endif
diff --git a/Misc/NEWS.d/next/C API/2023-07-25-17-23-08.gh-issue-107249.xqk2ke.rst b/Misc/NEWS.d/next/C API/2023-07-25-17-23-08.gh-issue-107249.xqk2ke.rst
new file mode 100644
index 0000000..a713902
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2023-07-25-17-23-08.gh-issue-107249.xqk2ke.rst
@@ -0,0 +1,2 @@
+Implement the :c:macro:`Py_UNUSED` macro for Windows MSVC compiler. Patch by
+Victor Stinner.