diff --git a/Include/pgenheaders.h b/Include/pgenheaders.h index 20ac2c7be99..051173cc5ee 100644 --- a/Include/pgenheaders.h +++ b/Include/pgenheaders.h @@ -25,8 +25,10 @@ extern "C" { #include "pydebug.h" -DL_IMPORT(void) PySys_WriteStdout(const char *format, ...); -DL_IMPORT(void) PySys_WriteStderr(const char *format, ...); +DL_IMPORT(void) PySys_WriteStdout(const char *format, ...) + __attribute__((format(printf, 1, 2))); +DL_IMPORT(void) PySys_WriteStderr(const char *format, ...) + __attribute__((format(printf, 1, 2))); #define addarc _Py_addarc #define addbit _Py_addbit diff --git a/Include/pyerrors.h b/Include/pyerrors.h index c3960b7e593..29ee1b6b000 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -77,7 +77,8 @@ extern DL_IMPORT(int) PyErr_BadArgument(void); extern DL_IMPORT(PyObject *) PyErr_NoMemory(void); extern DL_IMPORT(PyObject *) PyErr_SetFromErrno(PyObject *); extern DL_IMPORT(PyObject *) PyErr_SetFromErrnoWithFilename(PyObject *, char *); -extern DL_IMPORT(PyObject *) PyErr_Format(PyObject *, const char *, ...); +extern DL_IMPORT(PyObject *) PyErr_Format(PyObject *, const char *, ...) + __attribute__((format(printf, 2, 3))); #ifdef MS_WINDOWS extern DL_IMPORT(PyObject *) PyErr_SetFromWindowsErrWithFilename(int, const char *); extern DL_IMPORT(PyObject *) PyErr_SetFromWindowsErr(int); @@ -126,8 +127,10 @@ extern DL_IMPORT(PyObject *) PyErr_ProgramText(char *, int); #ifndef HAVE_SNPRINTF #include -extern DL_IMPORT(int) PyOS_snprintf(char *str, size_t size, const char *format, ...); -extern DL_IMPORT(int) PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va); +extern DL_IMPORT(int) PyOS_snprintf(char *str, size_t size, const char *format, ...) + __attribute__((format(printf, 3, 4))); +extern DL_IMPORT(int) PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va) + __attribute__((format(printf, 3, 0))); #else # define PyOS_vsnprintf vsnprintf # define PyOS_snprintf snprintf diff --git a/Include/stringobject.h b/Include/stringobject.h index 052eacf85e3..a5d97fa891b 100644 --- a/Include/stringobject.h +++ b/Include/stringobject.h @@ -56,8 +56,10 @@ extern DL_IMPORT(PyTypeObject) PyString_Type; extern DL_IMPORT(PyObject *) PyString_FromStringAndSize(const char *, int); extern DL_IMPORT(PyObject *) PyString_FromString(const char *); -extern DL_IMPORT(PyObject *) PyString_FromFormatV(const char*, va_list); -extern DL_IMPORT(PyObject *) PyString_FromFormat(const char*, ...); +extern DL_IMPORT(PyObject *) PyString_FromFormatV(const char*, va_list) + __attribute__((format(printf, 1, 0))); +extern DL_IMPORT(PyObject *) PyString_FromFormat(const char*, ...) + __attribute__((format(printf, 1, 2))); extern DL_IMPORT(int) PyString_Size(PyObject *); extern DL_IMPORT(char *) PyString_AsString(PyObject *); extern DL_IMPORT(void) PyString_Concat(PyObject **, PyObject *); diff --git a/Include/sysmodule.h b/Include/sysmodule.h index 92f2207be3d..ca6b6d78982 100644 --- a/Include/sysmodule.h +++ b/Include/sysmodule.h @@ -13,8 +13,10 @@ DL_IMPORT(FILE *) PySys_GetFile(char *, FILE *); DL_IMPORT(void) PySys_SetArgv(int, char **); DL_IMPORT(void) PySys_SetPath(char *); -DL_IMPORT(void) PySys_WriteStdout(const char *format, ...); -DL_IMPORT(void) PySys_WriteStderr(const char *format, ...); +DL_IMPORT(void) PySys_WriteStdout(const char *format, ...) + __attribute__((format(printf, 1, 2))); +DL_IMPORT(void) PySys_WriteStderr(const char *format, ...) + __attribute__((format(printf, 1, 2))); extern DL_IMPORT(PyObject *) _PySys_TraceFunc, *_PySys_ProfileFunc; extern DL_IMPORT(int) _PySys_CheckInterval;