diff --git a/CHANGES/1217.contrib.rst b/CHANGES/1217.contrib.rst new file mode 100644 index 000000000..082a09dd6 --- /dev/null +++ b/CHANGES/1217.contrib.rst @@ -0,0 +1 @@ +Fix compiler warnings and convert them to errors -- by :user:`asvetlov`. diff --git a/multidict/_multidict.c b/multidict/_multidict.c index f3ef01f5a..73c002296 100644 --- a/multidict/_multidict.c +++ b/multidict/_multidict.c @@ -139,7 +139,7 @@ _multidict_extend_parse_args(mod_state *state, PyObject *args, PyObject *kwds, const char *name, PyObject **parg) { Py_ssize_t size = 0; - Py_ssize_t s; + Py_ssize_t s = 0; if (args) { s = PyTuple_GET_SIZE(args); if (s > 1) { diff --git a/multidict/_multilib/hashtable.h b/multidict/_multilib/hashtable.h index ce85ec8d7..8d1332acc 100644 --- a/multidict/_multilib/hashtable.h +++ b/multidict/_multilib/hashtable.h @@ -86,12 +86,12 @@ GROWTH_RATE(MultiDictObject *md) return md->used * 3; } +#ifndef NDEBUG static inline int _md_check_consistency(MultiDictObject *md, bool update); static inline int _md_dump(MultiDictObject *md); -#ifndef NDEBUG #define ASSERT_CONSISTENT(md, update) assert(_md_check_consistency(md, update)) #else #define ASSERT_CONSISTENT(md, update) assert(1) @@ -873,6 +873,8 @@ md_get_one(MultiDictObject *md, PyObject *key, PyObject **ret) static inline int md_get_all(MultiDictObject *md, PyObject *key, PyObject **ret) { + int tmp; + PyObject *value = NULL; *ret = NULL; md_finder_t finder = {0}; @@ -887,9 +889,6 @@ md_get_all(MultiDictObject *md, PyObject *key, PyObject **ret) goto fail; } - int tmp; - PyObject *value = NULL; - while ((tmp = md_find_next(&finder, NULL, &value)) > 0) { if (*ret == NULL) { *ret = PyList_New(1); @@ -1900,6 +1899,8 @@ md_clear(MultiDictObject *md) return 0; } +#ifndef NDEBUG + static inline int _md_check_consistency(MultiDictObject *md, bool update) { @@ -1992,6 +1993,7 @@ _md_dump(MultiDictObject *md) printf("\n"); return 1; } +#endif // NDEBUG #ifdef __cplusplus } diff --git a/setup.py b/setup.py index 33dd98afd..73b070d02 100644 --- a/setup.py +++ b/setup.py @@ -15,12 +15,13 @@ if platform.system() != "Windows": CFLAGS.extend( [ - "-std=c99", + "-std=c11", "-Wall", "-Wsign-compare", "-Wconversion", "-fno-strict-aliasing", - "-pedantic", + "-Wno-conversion", + "-Werror", ] )