Issue #19569: Compiler warnings are now emitted if use most of deprecated
functions.
diff --git a/Include/abstract.h b/Include/abstract.h
index 44107a8..727d1a8 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -549,7 +549,8 @@
 
      PyAPI_FUNC(int) PyObject_AsCharBuffer(PyObject *obj,
                                            const char **buffer,
-                                           Py_ssize_t *buffer_len);
+                                           Py_ssize_t *buffer_len)
+                                           Py_DEPRECATED(3.0);
 
        /*
       Takes an arbitrary object which must support the (character,
@@ -562,7 +563,8 @@
       an exception set.
        */
 
-     PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj);
+     PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj)
+                                              Py_DEPRECATED(3.0);
 
       /*
       Checks whether an arbitrary object supports the (character,
@@ -572,7 +574,8 @@
 
      PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
                                            const void **buffer,
-                                           Py_ssize_t *buffer_len);
+                                           Py_ssize_t *buffer_len)
+                                           Py_DEPRECATED(3.0);
 
        /*
       Same as PyObject_AsCharBuffer() except that this API expects
@@ -587,7 +590,8 @@
 
      PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
                                             void **buffer,
-                                            Py_ssize_t *buffer_len);
+                                            Py_ssize_t *buffer_len)
+                                            Py_DEPRECATED(3.0);
 
        /*
       Takes an arbitrary object which must support the (writable,
diff --git a/Include/ceval.h b/Include/ceval.h
index 89c6062..e721718 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -182,8 +182,8 @@
 #ifndef Py_LIMITED_API
 PyAPI_FUNC(void) _PyEval_FiniThreads(void);
 #endif /* !Py_LIMITED_API */
-PyAPI_FUNC(void) PyEval_AcquireLock(void);
-PyAPI_FUNC(void) PyEval_ReleaseLock(void);
+PyAPI_FUNC(void) PyEval_AcquireLock(void) Py_DEPRECATED(3.2);
+PyAPI_FUNC(void) PyEval_ReleaseLock(void) /* Py_DEPRECATED(3.2) */;
 PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate);
 PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate);
 PyAPI_FUNC(void) PyEval_ReInitThreads(void);
diff --git a/Include/longobject.h b/Include/longobject.h
index efd409c..ac09a00 100644
--- a/Include/longobject.h
+++ b/Include/longobject.h
@@ -94,7 +94,7 @@
 
 PyAPI_FUNC(PyObject *) PyLong_FromString(const char *, char **, int);
 #ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int);
+PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int) Py_DEPRECATED(3.3);
 PyAPI_FUNC(PyObject *) PyLong_FromUnicodeObject(PyObject *u, int base);
 PyAPI_FUNC(PyObject *) _PyLong_FromBytes(const char *, Py_ssize_t, int);
 #endif
diff --git a/Include/moduleobject.h b/Include/moduleobject.h
index b44fb9b..43b6848 100644
--- a/Include/moduleobject.h
+++ b/Include/moduleobject.h
@@ -21,7 +21,7 @@
 PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *);
 PyAPI_FUNC(PyObject *) PyModule_GetNameObject(PyObject *);
 PyAPI_FUNC(const char *) PyModule_GetName(PyObject *);
-PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *);
+PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *) Py_DEPRECATED(3.2);
 PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *);
 #ifndef Py_LIMITED_API
 PyAPI_FUNC(void) _PyModule_Clear(PyObject *);
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index f9f74c0..3d28a46 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -240,7 +240,7 @@
     );
 #if defined(MS_WINDOWS) && !defined(Py_LIMITED_API)
 PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename(
-    PyObject *, const Py_UNICODE *);
+    PyObject *, const Py_UNICODE *) Py_DEPRECATED(3.3);
 #endif /* MS_WINDOWS */
 
 PyAPI_FUNC(PyObject *) PyErr_Format(
@@ -274,7 +274,7 @@
 #ifndef Py_LIMITED_API
 /* XXX redeclare to use WSTRING */
 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithUnicodeFilename(
-    int, const Py_UNICODE *);
+    int, const Py_UNICODE *) Py_DEPRECATED(3.3);
 #endif
 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErr(int);
 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObject(
@@ -288,7 +288,7 @@
     );
 #ifndef Py_LIMITED_API
 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithUnicodeFilename(
-    PyObject *,int, const Py_UNICODE *);
+    PyObject *,int, const Py_UNICODE *) Py_DEPRECATED(3.3);
 #endif
 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErr(PyObject *, int);
 #endif /* MS_WINDOWS */
@@ -391,7 +391,7 @@
     Py_ssize_t start,
     Py_ssize_t end,
     const char *reason          /* UTF-8 encoded string */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* create a UnicodeTranslateError object */
@@ -402,7 +402,7 @@
     Py_ssize_t start,
     Py_ssize_t end,
     const char *reason          /* UTF-8 encoded string */
-    );
+    ) Py_DEPRECATED(3.3);
 PyAPI_FUNC(PyObject *) _PyUnicodeTranslateError_Create(
     PyObject *object,
     Py_ssize_t start,
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 2b65d19..516e678 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -90,7 +90,7 @@
 
 #ifndef Py_LIMITED_API
 #define PY_UNICODE_TYPE wchar_t
-typedef wchar_t Py_UNICODE;
+typedef wchar_t Py_UNICODE /* Py_DEPRECATED(3.3) */;
 #endif
 
 /* If the compiler provides a wchar_t type we try to support it
@@ -387,9 +387,11 @@
       ((void)PyUnicode_AsUnicode((PyObject *)(op)),  \
        assert(((PyASCIIObject *)(op))->wstr),        \
        PyUnicode_WSTR_LENGTH(op)))
+    /* Py_DEPRECATED(3.3) */
 
 #define PyUnicode_GET_DATA_SIZE(op) \
     (PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE)
+    /* Py_DEPRECATED(3.3) */
 
 /* Alias for PyUnicode_AsUnicode().  This will create a wchar_t/Py_UNICODE
    representation on demand.  Using this macro is very inefficient now,
@@ -400,9 +402,11 @@
     (assert(PyUnicode_Check(op)), \
      (((PyASCIIObject *)(op))->wstr) ? (((PyASCIIObject *)(op))->wstr) : \
       PyUnicode_AsUnicode((PyObject *)(op)))
+    /* Py_DEPRECATED(3.3) */
 
 #define PyUnicode_AS_DATA(op) \
     ((const char *)(PyUnicode_AS_UNICODE(op)))
+    /* Py_DEPRECATED(3.3) */
 
 
 /* --- Flexible String Representation Helper Macros (PEP 393) -------------- */
@@ -688,7 +692,7 @@
 PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
     const Py_UNICODE *u,        /* Unicode buffer */
     Py_ssize_t size             /* size of buffer */
-    );
+    ) /* Py_DEPRECATED(3.3) */;
 #endif
 
 /* Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes */
@@ -756,7 +760,7 @@
 #ifndef Py_LIMITED_API
 PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
     PyObject *unicode           /* Unicode object */
-    );
+    ) /* Py_DEPRECATED(3.3) */;
 #endif
 
 /* Return a read-only pointer to the Unicode object's internal
@@ -768,7 +772,7 @@
 PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicodeAndSize(
     PyObject *unicode,          /* Unicode object */
     Py_ssize_t *size            /* location where to save the length */
-    );
+    )  /* Py_DEPRECATED(3.3) */;
 #endif
 
 /* Get the length of the Unicode object. */
@@ -782,7 +786,7 @@
 
 PyAPI_FUNC(Py_ssize_t) PyUnicode_GetSize(
     PyObject *unicode           /* Unicode object */
-    );
+    ) Py_DEPRECATED(3.3);
 
 /* Read a character from the string. */
 
@@ -804,7 +808,7 @@
 
 #ifndef Py_LIMITED_API
 /* Get the maximum ordinal for a Unicode character. */
-PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void);
+PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void) Py_DEPRECATED(3.3);
 #endif
 
 /* Resize a Unicode object. The length is the number of characters, except
@@ -1205,7 +1209,7 @@
     Py_ssize_t size,            /* number of Py_UNICODE chars to encode */
     const char *encoding,       /* encoding */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* Encodes a Unicode object and returns the result as Python
@@ -1272,7 +1276,7 @@
     int base64SetO,             /* Encode RFC2152 Set O characters in base64 */
     int base64WhiteSpace,       /* Encode whitespace (sp, ht, nl, cr) in base64 */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF7(
     PyObject *unicode,          /* Unicode object */
     int base64SetO,             /* Encode RFC2152 Set O characters in base64 */
@@ -1309,7 +1313,7 @@
     const Py_UNICODE *data,     /* Unicode char buffer */
     Py_ssize_t length,          /* number of Py_UNICODE chars to encode */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* --- UTF-32 Codecs ------------------------------------------------------ */
@@ -1385,7 +1389,7 @@
     Py_ssize_t length,          /* number of Py_UNICODE chars to encode */
     const char *errors,         /* error handling */
     int byteorder               /* byteorder to use 0=BOM+native;-1=LE,1=BE */
-    );
+    ) Py_DEPRECATED(3.3);
 PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
     PyObject *object,           /* Unicode object */
     const char *errors,         /* error handling */
@@ -1470,7 +1474,7 @@
     Py_ssize_t length,          /* number of Py_UNICODE chars to encode */
     const char *errors,         /* error handling */
     int byteorder               /* byteorder to use 0=BOM+native;-1=LE,1=BE */
-    );
+    ) Py_DEPRECATED(3.3);
 PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
     PyObject* unicode,          /* Unicode object */
     const char *errors,         /* error handling */
@@ -1505,7 +1509,7 @@
 PyAPI_FUNC(PyObject*) PyUnicode_EncodeUnicodeEscape(
     const Py_UNICODE *data,     /* Unicode char buffer */
     Py_ssize_t length           /* Number of Py_UNICODE chars to encode */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* --- Raw-Unicode-Escape Codecs ------------------------------------------ */
@@ -1524,7 +1528,7 @@
 PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape(
     const Py_UNICODE *data,     /* Unicode char buffer */
     Py_ssize_t length           /* Number of Py_UNICODE chars to encode */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* --- Unicode Internal Codec ---------------------------------------------
@@ -1564,7 +1568,7 @@
     const Py_UNICODE *data,     /* Unicode char buffer */
     Py_ssize_t length,          /* Number of Py_UNICODE chars to encode */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* --- ASCII Codecs -------------------------------------------------------
@@ -1592,7 +1596,7 @@
     const Py_UNICODE *data,     /* Unicode char buffer */
     Py_ssize_t length,          /* Number of Py_UNICODE chars to encode */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 /* --- Character Map Codecs -----------------------------------------------
@@ -1638,7 +1642,7 @@
     PyObject *mapping,          /* character mapping
                                    (unicode ordinal -> char ordinal) */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 PyAPI_FUNC(PyObject*) _PyUnicode_EncodeCharmap(
     PyObject *unicode,          /* Unicode object */
     PyObject *mapping,          /* character mapping
@@ -1666,7 +1670,7 @@
     Py_ssize_t length,          /* Number of Py_UNICODE chars to encode */
     PyObject *table,            /* Translate table */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 #ifdef MS_WINDOWS
@@ -1703,7 +1707,7 @@
     const Py_UNICODE *data,     /* Unicode char buffer */
     Py_ssize_t length,          /* number of Py_UNICODE chars to encode */
     const char *errors          /* error handling */
-    );
+    ) Py_DEPRECATED(3.3);
 #endif
 
 PyAPI_FUNC(PyObject*) PyUnicode_EncodeCodePage(
@@ -1744,7 +1748,7 @@
     Py_ssize_t length,          /* Number of Py_UNICODE chars to encode */
     char *output,               /* Output buffer; must have size >= length */
     const char *errors          /* error handling */
-    );
+    ) /* Py_DEPRECATED(3.3) */;
 #endif
 
 /* Transforms code points that have decimal digit property to the
@@ -1757,7 +1761,7 @@
 PyAPI_FUNC(PyObject*) PyUnicode_TransformDecimalToASCII(
     Py_UNICODE *s,              /* Unicode buffer */
     Py_ssize_t length           /* Number of Py_UNICODE chars to transform */
-    );
+    ) /* Py_DEPRECATED(3.3) */;
 #endif
 
 /* Similar to PyUnicode_TransformDecimalToASCII(), but takes a PyObject
@@ -2182,15 +2186,15 @@
 
 PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase(
     Py_UCS4 ch       /* Unicode character */
-    );
+    ) /* Py_DEPRECATED(3.3) */;
 
 PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase(
     Py_UCS4 ch       /* Unicode character */
-    );
+    ) /* Py_DEPRECATED(3.3) */;
 
 PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase(
     Py_UCS4 ch       /* Unicode character */
-    );
+    ) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(int) _PyUnicode_ToLowerFull(
     Py_UCS4 ch,       /* Unicode character */
@@ -2254,40 +2258,40 @@
 
 PyAPI_FUNC(size_t) Py_UNICODE_strlen(
     const Py_UNICODE *u
-    );
+    ) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcpy(
     Py_UNICODE *s1,
-    const Py_UNICODE *s2);
+    const Py_UNICODE *s2) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcat(
-    Py_UNICODE *s1, const Py_UNICODE *s2);
+    Py_UNICODE *s1, const Py_UNICODE *s2) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strncpy(
     Py_UNICODE *s1,
     const Py_UNICODE *s2,
-    size_t n);
+    size_t n) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(int) Py_UNICODE_strcmp(
     const Py_UNICODE *s1,
     const Py_UNICODE *s2
-    );
+    ) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(int) Py_UNICODE_strncmp(
     const Py_UNICODE *s1,
     const Py_UNICODE *s2,
     size_t n
-    );
+    ) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strchr(
     const Py_UNICODE *s,
     Py_UNICODE c
-    );
+    ) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr(
     const Py_UNICODE *s,
     Py_UNICODE c
-    );
+    ) Py_DEPRECATED(3.3);
 
 PyAPI_FUNC(PyObject*) _PyUnicode_FormatLong(PyObject *, int, int, int);
 
@@ -2297,7 +2301,7 @@
 
 PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy(
     PyObject *unicode
-    );
+    ) Py_DEPRECATED(3.3);
 #endif /* Py_LIMITED_API */
 
 #if defined(Py_DEBUG) && !defined(Py_LIMITED_API)