Mercurial > vim
diff src/if_python3.c @ 33404:9b35b4c6df4c v9.0.1960
patch 9.0.1960: Make CI checks more strict
Commit: https://github.com/vim/vim/commit/f7f746b1672909ae57d2eec97253d6627f6c0887
Author: Yee Cheng Chin <ychin.git@gmail.com>
Date: Sat Sep 30 12:28:50 2023 +0200
patch 9.0.1960: Make CI checks more strict
Problem: Make CI checks more strict
Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI,
fix uncovered problems
Add -Wstrict-prototypes -Wmissing-prototypes warnings check to CI
Add two new warnings to CI, silence some Perl related build-warnings:
- `strict-prototypes` helps prevent declaring a function with an empty
argument list, e.g. `int func()`. In C++, that's equivalent to `int
func(void)`, but in C, that means a function that can take any number
of arguments which is rarely what we want.
- `missing-prototypes` makes sure we use `static` for file-only internal
functions. Non-static functions should have been declared on a
prototype file.
- Add `no-compound-token-split-by-macro` to the perl cflags, since it
throws out a bunch of perl-related warnings that make the CI log
unnecessary verbose and hard to read. This seems to happen only with
clang 12 and above.
When applying those changes, it already uncovered a few warnings, so fix
up the code as well (fix prototypes, make the code static, remove
shadowed var declaration)
GTK header needs to have #pragma warning suppressiong because GTK2
headers will warn on `-Wstrict-prototypes`, and it's included by gui.h
and so we can't just turn off the warning in a couple files.
closes: #13223
closes: #13226
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 30 Sep 2023 12:45:05 +0200 |
parents | 3af53f2895dc |
children | ed8db57d1034 |
line wrap: on
line diff
--- a/src/if_python3.c +++ b/src/if_python3.c @@ -395,8 +395,8 @@ static int (*py3_PyObject_SetAttrString) static PyObject* (*py3_PyObject_CallFunctionObjArgs)(PyObject *, ...); static PyObject* (*py3__PyObject_CallFunction_SizeT)(PyObject *, char *, ...); static PyObject* (*py3_PyObject_Call)(PyObject *, PyObject *, PyObject *); -static PyObject* (*py3_PyEval_GetGlobals)(); -static PyObject* (*py3_PyEval_GetLocals)(); +static PyObject* (*py3_PyEval_GetGlobals)(void); +static PyObject* (*py3_PyEval_GetLocals)(void); static PyObject* (*py3_PyList_GetItem)(PyObject *, Py_ssize_t); static PyObject* (*py3_PyImport_ImportModule)(const char *); static PyObject* (*py3_PyImport_AddModule)(const char *); @@ -1061,7 +1061,7 @@ static struct PyModuleDef vimmodule; // An alternative would be to convert all attribute string comparisons to use // PyUnicode_CompareWithASCIIString to skip having to extract the chars. static char py3_unicode_utf8_chars[20]; -char* PY_UNICODE_GET_UTF8_CHARS(PyObject* str) +static char* PY_UNICODE_GET_UTF8_CHARS(PyObject* str) { py3_unicode_utf8_chars[0] = '\0'; PyObject* bytes = PyUnicode_AsUTF8String(str);