]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-106560: Fix redundant declarations in Python/frozen.c (#112612) (#112651)
authorVictor Stinner <vstinner@python.org>
Sun, 3 Dec 2023 11:54:59 +0000 (12:54 +0100)
committerGitHub <noreply@github.com>
Sun, 3 Dec 2023 11:54:59 +0000 (11:54 +0000)
gh-106560: Fix redundant declarations in Python/frozen.c (#112612)

Avoid duplicated declarations of "extern" functions in
Python/frozen.c.

Compiler warnings seen by building Python with gcc -Wredundant-decls.

(cherry picked from commit d9e444dbb86e173ee5b8491e3facbd447b91eaed)

Python/frozen.c
Tools/build/freeze_modules.py

index 6b977710e6e342f611c0d9d594945d549b2d34dd..f8e0b8b065a22030df152a01c377f4869980ac6c 100644 (file)
@@ -80,7 +80,6 @@ extern PyObject *_Py_get__sitebuiltins_toplevel(void);
 extern PyObject *_Py_get_genericpath_toplevel(void);
 extern PyObject *_Py_get_ntpath_toplevel(void);
 extern PyObject *_Py_get_posixpath_toplevel(void);
-extern PyObject *_Py_get_posixpath_toplevel(void);
 extern PyObject *_Py_get_os_toplevel(void);
 extern PyObject *_Py_get_site_toplevel(void);
 extern PyObject *_Py_get_stat_toplevel(void);
@@ -88,13 +87,8 @@ extern PyObject *_Py_get_importlib_util_toplevel(void);
 extern PyObject *_Py_get_importlib_machinery_toplevel(void);
 extern PyObject *_Py_get_runpy_toplevel(void);
 extern PyObject *_Py_get___hello___toplevel(void);
-extern PyObject *_Py_get___hello___toplevel(void);
-extern PyObject *_Py_get___hello___toplevel(void);
-extern PyObject *_Py_get___hello___toplevel(void);
-extern PyObject *_Py_get___phello___toplevel(void);
 extern PyObject *_Py_get___phello___toplevel(void);
 extern PyObject *_Py_get___phello___ham_toplevel(void);
-extern PyObject *_Py_get___phello___ham_toplevel(void);
 extern PyObject *_Py_get___phello___ham_eggs_toplevel(void);
 extern PyObject *_Py_get___phello___spam_toplevel(void);
 extern PyObject *_Py_get_frozen_only_toplevel(void);
index 12200979fa4bc76b0215ad562412e222090fb757..5e3bd1f614713e8c010161869f7b14152c00348b 100644 (file)
@@ -467,6 +467,17 @@ def replace_block(lines, start_marker, end_marker, replacements, file):
     return lines[:start_pos + 1] + replacements + lines[end_pos:]
 
 
+class UniqueList(list):
+    def __init__(self):
+        self._seen = set()
+
+    def append(self, item):
+        if item in self._seen:
+            return
+        super().append(item)
+        self._seen.add(item)
+
+
 def regen_frozen(modules, frozen_modules: bool):
     headerlines = []
     parentdir = os.path.dirname(FROZEN_FILE)
@@ -477,7 +488,7 @@ def regen_frozen(modules, frozen_modules: bool):
             header = relpath_for_posix_display(src.frozenfile, parentdir)
             headerlines.append(f'#include "{header}"')
 
-    externlines = []
+    externlines = UniqueList()
     bootstraplines = []
     stdliblines = []
     testlines = []