summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-05-24 13:16:08 (GMT)
committerGitHub <noreply@github.com>2019-05-24 13:16:08 (GMT)
commitb3a9843cd19039808a812ca11206881c94c64e3b (patch)
treeee801eaed47ba95e99592e26d8c5b041b992bcf7
parentb4bdecd0fc9112b60a81fec171bc78bc13f2f59c (diff)
downloadcpython-b3a9843cd19039808a812ca11206881c94c64e3b.zip
cpython-b3a9843cd19039808a812ca11206881c94c64e3b.tar.gz
cpython-b3a9843cd19039808a812ca11206881c94c64e3b.tar.bz2
Support Py_UNUSED() on clang (GH-13544)
-rw-r--r--Doc/c-api/intro.rst2
-rw-r--r--Include/pymacro.h11
2 files changed, 9 insertions, 4 deletions
diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst
index b003bba..672936a 100644
--- a/Doc/c-api/intro.rst
+++ b/Doc/c-api/intro.rst
@@ -156,7 +156,7 @@ complete listing.
.. c:macro:: Py_UNUSED(arg)
Use this for unused arguments in a function definition to silence compiler
- warnings, e.g. ``PyObject* func(PyObject *Py_UNUSED(ignored))``.
+ warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``.
.. versionadded:: 3.4
diff --git a/Include/pymacro.h b/Include/pymacro.h
index 546f9c6..1890619 100644
--- a/Include/pymacro.h
+++ b/Include/pymacro.h
@@ -89,10 +89,15 @@
/* Check if pointer "p" is aligned to "a"-bytes boundary. */
#define _Py_IS_ALIGNED(p, a) (!((uintptr_t)(p) & (uintptr_t)((a) - 1)))
-#ifdef __GNUC__
-#define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
+/* Use this for unused arguments in a function definition to silence compiler
+ * warnings. Example:
+ *
+ * int func(int a, int Py_UNUSED(b)) { return a; }
+ */
+#if defined(__GNUC__) || defined(__clang__)
+# define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
#else
-#define Py_UNUSED(name) _unused_ ## name
+# define Py_UNUSED(name) _unused_ ## name
#endif
#define Py_UNREACHABLE() abort()