bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)

diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 55132e7..65d556c 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -575,7 +575,7 @@
     return new_deque;
 }
 
-static void
+static int
 deque_clear(dequeobject *deque)
 {
     block *b;
@@ -587,7 +587,7 @@
     PyObject **itemptr, **limit;
 
     if (Py_SIZE(deque) == 0)
-        return;
+        return 0;
 
     /* During the process of clearing a deque, decrefs can cause the
        deque to mutate.  To avoid fatal confusion, we have to make the
@@ -648,7 +648,7 @@
     }
     CHECK_END(leftblock->rightlink);
     freeblock(leftblock);
-    return;
+    return 0;
 
   alternate_method:
     while (Py_SIZE(deque)) {
@@ -656,6 +656,7 @@
         assert (item != NULL);
         Py_DECREF(item);
     }
+    return 0;
 }
 
 static PyObject *
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 399e79e..44e3d40 100644
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -647,10 +647,11 @@
     return 0;
 }
 
-static void
+static int
 ast_clear(AST_object *self)
 {
     Py_CLEAR(self->dict);
+    return 0;
 }
 
 static int
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 38b9292..6a2f28e 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -528,10 +528,11 @@
     return 0;
 }
 
-static void
+static int
 ast_clear(AST_object *self)
 {
     Py_CLEAR(self->dict);
+    return 0;
 }
 
 static int