Fix warnings

This change fixes Cosmopolitan so it has fewer opinions about compiler
warnings. The whole repository had to be cleaned up to be buildable in
-Werror -Wall mode. This lets us benefit from things like strict const
checking. Some actual bugs might have been caught too.
This commit is contained in:
Justine Tunney 2023-09-01 20:49:13 -07:00
parent e2b3c3618e
commit 0d748ad58e
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
571 changed files with 1306 additions and 1888 deletions

View file

@ -4,6 +4,8 @@
#include "third_party/python/Include/pymacro.h"
#pragma GCC push_options
#pragma GCC diagnostic ignored "-Wunused-variable"
/******************************************************************************/
/* Module */
@ -871,6 +873,7 @@ PyDoc_STRVAR(doc_ctx_to_sci_string,
Convert a number to a string using scientific notation.\n\
\n");
#pragma GCC pop_options
#endif /* DOCSTRINGS_H */

View file

@ -54,10 +54,10 @@ PYTHON_PROVIDE("_hashlib.mbedtls_sha512");
struct Hasher {
PyObject_HEAD
PyObject *name;
const PyObject *name;
mbedtls_md_context_t ctx;
#ifdef WITH_THREAD
PyThread_type_lock lock;
PyThread_type_lock lock;
#endif
};
@ -81,7 +81,7 @@ SetMbedtlsError(PyObject *exc, int rc)
}
static struct Hasher *
hasher_new(PyObject *name)
hasher_new(const PyObject *name)
{
struct Hasher *self;
if ((self = PyObject_New(struct Hasher, &hasher_type))) {
@ -304,7 +304,7 @@ static PyTypeObject hasher_type = {
};
static PyObject *
NewHasher(PyObject *name_obj,
NewHasher(const PyObject *name_obj,
const mbedtls_md_info_t *digest,
void *p, Py_ssize_t n)
{
@ -482,7 +482,7 @@ GenerateHashNameList(void)
{
int i;
char *s;
uint8_t *p;
const uint8_t *p;
PyObject *set, *name;
if ((set = PyFrozenSet_New(0))) {
for (p = mbedtls_md_list(); *p != MBEDTLS_MD_NONE; ++p) {

View file

@ -4305,6 +4305,7 @@ tracemalloc_track(PyObject *self, PyObject *args)
Py_ssize_t size;
int release_gil = 0;
int res;
(void)ptr;
if (!PyArg_ParseTuple(args, "IOn|i", &domain, &ptr_obj, &size, &release_gil))
return NULL;
@ -4336,6 +4337,7 @@ tracemalloc_untrack(PyObject *self, PyObject *args)
PyObject *ptr_obj;
void *ptr;
int res;
(void)ptr;
if (!PyArg_ParseTuple(args, "IO", &domain, &ptr_obj))
return NULL;
@ -4358,6 +4360,7 @@ tracemalloc_get_traceback(PyObject *self, PyObject *args)
unsigned int domain;
PyObject *ptr_obj;
void *ptr;
(void)ptr;
if (!PyArg_ParseTuple(args, "IO", &domain, &ptr_obj))
return NULL;

View file

@ -244,10 +244,13 @@ getcodec(PyObject *self, PyObject *encoding)
return r;
}
#pragma GCC push_options
#pragma GCC diagnostic ignored "-Wunused-variable"
static struct PyMethodDef __methods[] = {
{"getcodec", (PyCFunction)getcodec, METH_O, ""},
{0},
};
#pragma GCC pop_options
#ifdef USING_BINARY_PAIR_SEARCH
static DBCHAR

View file

@ -405,6 +405,8 @@ Py_Main(int argc, wchar_t **argv)
PyObject *warning_option = NULL;
PyObject *warning_options = NULL;
(void)opt;
cf.cf_flags = 0;
orig_argc = argc; /* For Py_GetArgcArgv() */

View file

@ -687,7 +687,6 @@ internal_setblocking(PySocketSockObject *s, int block)
#endif
#if !defined(MS_WINDOWS) \
&& !((defined(HAVE_SYS_IOCTL_H) && defined(FIONBIO)))
int delay_flag, new_delay_flag;
#endif
#ifdef SOCK_NONBLOCK
if (block)
@ -5655,7 +5654,7 @@ socket_inet_aton(PyObject *self, PyObject *args)
#ifdef HAVE_INET_ATON
#ifdef USE_INET_ATON_WEAKLINK
if (inet_aton != NULL) {
if (__veil("r", inet_aton) != NULL) {
#endif
if (inet_aton(ip_addr, &buf))
return PyBytes_FromStringAndSize((char *)(&buf),

View file

@ -1520,7 +1520,6 @@ pysleep(_PyTime_t secs)
{
_PyTime_t deadline, monotonic;
#ifndef MS_WINDOWS
struct timeval timeout;
struct timespec timeout2;
int err = 0;
#else

View file

@ -285,7 +285,6 @@ tls_recv_into(struct Tls *self, PyObject *args)
{
LOG("TLS.recv_into\n");
int rc;
Py_ssize_t n;
PyObject *res;
Py_buffer buf;
if (!PyArg_ParseTuple(args, "w*:recv_into", &buf)) return 0;
@ -458,7 +457,7 @@ Creates TLS client.");
static PyObject *
newclient(PyObject *self, PyObject *args)
{
int rc, fd;
int fd;
PyObject *todo;
struct Tls *tls;
const char *host;
@ -483,7 +482,7 @@ static struct PyModuleDef mbedtls_module = {
PyMODINIT_FUNC
PyInit_tls(void)
{
PyObject *m, *mbedtls_md_meth_names;
PyObject *m;
Py_TYPE(&tls_type) = &PyType_Type;
if (PyType_Ready(&tls_type) < 0) return 0;
if (!(m = PyModule_Create(&mbedtls_module))) return 0;

View file

@ -270,7 +270,7 @@ _PyUnicode_GetUcName(PyObject *self, Py_UCS4 code, char *buffer, int buflen,
/* copy word string from lexicon. the last character in the
word has bit 7 set. the last word in a string ends with
0x80 */
w = (_PyUnicode_Lexicon +
w = (void *)(_PyUnicode_Lexicon +
BitFieldExtract(_PyUnicode_LexiconOffset, word,
_PyUnicode_LexiconOffsetBits));
while (*w < 128) {