summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS.d/next/Build/2017-11-03-10-07-14.bpo-31926.57wE98.rst2
-rw-r--r--Modules/clinic/zlibmodule.c.h6
-rw-r--r--Modules/zlibmodule.c4
-rwxr-xr-xTools/clinic/clinic.py4
4 files changed, 9 insertions, 7 deletions
diff --git a/Misc/NEWS.d/next/Build/2017-11-03-10-07-14.bpo-31926.57wE98.rst b/Misc/NEWS.d/next/Build/2017-11-03-10-07-14.bpo-31926.57wE98.rst
new file mode 100644
index 0000000..2a42104
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2017-11-03-10-07-14.bpo-31926.57wE98.rst
@@ -0,0 +1,2 @@
+Fixed Argument Clinic sometimes causing compilation errors when there was
+more than one function and/or method in a .c file with the same name.
diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h
index 3edf7db..33c7672 100644
--- a/Modules/clinic/zlibmodule.c.h
+++ b/Modules/clinic/zlibmodule.c.h
@@ -467,4 +467,8 @@ exit:
#ifndef ZLIB_COMPRESS_COPY_METHODDEF
#define ZLIB_COMPRESS_COPY_METHODDEF
#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
-/*[clinic end generated code: output=e0184313eb431e95 input=a9049054013a1b77]*/
+
+#ifndef ZLIB_DECOMPRESS_COPY_METHODDEF
+ #define ZLIB_DECOMPRESS_COPY_METHODDEF
+#endif /* !defined(ZLIB_DECOMPRESS_COPY_METHODDEF) */
+/*[clinic end generated code: output=6378d429f0819817 input=a9049054013a1b77]*/
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index cf086de..cb2aae1 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -1138,9 +1138,7 @@ static PyMethodDef comp_methods[] =
{
ZLIB_COMPRESS_COMPRESS_METHODDEF
ZLIB_COMPRESS_FLUSH_METHODDEF
-#ifdef HAVE_ZLIB_COPY
ZLIB_COMPRESS_COPY_METHODDEF
-#endif
{NULL, NULL}
};
@@ -1148,9 +1146,7 @@ static PyMethodDef Decomp_methods[] =
{
ZLIB_DECOMPRESS_DECOMPRESS_METHODDEF
ZLIB_DECOMPRESS_FLUSH_METHODDEF
-#ifdef HAVE_ZLIB_COPY
ZLIB_DECOMPRESS_COPY_METHODDEF
-#endif
{NULL, NULL}
};
diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py
index 91d8440..4cdfebb 100755
--- a/Tools/clinic/clinic.py
+++ b/Tools/clinic/clinic.py
@@ -957,8 +957,8 @@ class CLanguage(Language):
cpp_if = "#if " + conditional
cpp_endif = "#endif /* " + conditional + " */"
- if methoddef_define and f.name not in clinic.ifndef_symbols:
- clinic.ifndef_symbols.add(f.name)
+ if methoddef_define and f.full_name not in clinic.ifndef_symbols:
+ clinic.ifndef_symbols.add(f.full_name)
methoddef_ifndef = normalize_snippet("""
#ifndef {methoddef_name}
#define {methoddef_name}