Message329608
| Author |
izbyshev |
| Recipients |
atuining, eric.snow, izbyshev, lemburg, serhiy.storchaka, tim.peters, vstinner |
| Date |
2018年11月10日.13:19:14 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1541855954.5.0.788709270274.issue35081@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Victor, you moved declarations of some functions to other headers, but didn't include the new headers into files that implement the functions in some cases. For example, _PyGILState_Init was moved into Include/internal/pycore_lifecycle.h in a1c249c40517917d2e0971d55aea8d14a44b2cc8, but it's implemented in Python/pystate.c, which doesn't include the new header.
This may lead to subtle problems because the compiler can't check that signatures of the declaration and the implementation match. I suggest to use -Wmissing-prototypes and -Wmissing-declarations to detect such situations:
../../cpython/Python/pystate.c: At top level:
../../cpython/Python/pystate.c:968:1: warning: no previous prototype for ‘_PyGILState_Init’ [-Wmissing-prototypes]
_PyGILState_Init(PyInterpreterState *i, PyThreadState *t)
^~~~~~~~~~~~~~~~
../../cpython/Python/pystate.c:988:1: warning: no previous prototype for ‘_PyGILState_Fini’ [-Wmissing-prototypes]
_PyGILState_Fini(void)
^~~~~~~~~~~~~~~~
Sadly, there are many other similar issues in Python now, but you can at least compare the number of warnings before and after your changes. |
|