Skip to content

Commit

Permalink
gh-106560: Fix redundant declarations in Python/frozen.c (#112612)
Browse files Browse the repository at this point in the history
Avoid duplicated declarations of "extern" functions in
Python/frozen.c.

Compiler warnings seen by building Python with gcc -Wredundant-decls.
  • Loading branch information
vstinner committed Dec 3, 2023
1 parent 1f2a676 commit d9e444d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
6 changes: 0 additions & 6 deletions Python/frozen.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,21 +80,15 @@ 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);
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);
Expand Down
13 changes: 12 additions & 1 deletion Tools/build/freeze_modules.py
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,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):
headerlines = []
parentdir = os.path.dirname(FROZEN_FILE)
Expand All @@ -477,7 +488,7 @@ def regen_frozen(modules):
header = relpath_for_posix_display(src.frozenfile, parentdir)
headerlines.append(f'#include "{header}"')

externlines = []
externlines = UniqueList()
bootstraplines = []
stdliblines = []
testlines = []
Expand Down

0 comments on commit d9e444d

Please sign in to comment.