diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 1e6ea86..efc69dc 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -3378,10 +3378,9 @@
 int
 obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
+        PyObject *tmp = NULL;
 
         if (obj == Py_None) {
                 *out = NULL;
@@ -3527,10 +3526,9 @@
 int
 obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
+        PyObject *tmp = NULL;
         int lineno;
         int col_offset;
 
@@ -4724,10 +4722,9 @@
 int
 obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
+        PyObject *tmp = NULL;
         int lineno;
         int col_offset;
 
@@ -5840,9 +5837,7 @@
 int
 obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Load_type);
         if (isinstance == -1) {
@@ -5900,10 +5895,9 @@
 int
 obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
+        PyObject *tmp = NULL;
 
         if (obj == Py_None) {
                 *out = NULL;
@@ -6023,9 +6017,7 @@
 int
 obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)And_type);
         if (isinstance == -1) {
@@ -6051,9 +6043,7 @@
 int
 obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Add_type);
         if (isinstance == -1) {
@@ -6159,9 +6149,7 @@
 int
 obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Invert_type);
         if (isinstance == -1) {
@@ -6203,9 +6191,7 @@
 int
 obj2ast_cmpop(PyObject* obj, cmpop_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Eq_type);
         if (isinstance == -1) {
@@ -6359,10 +6345,9 @@
 int
 obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
 {
-        PyObject* tmp = NULL;
         int isinstance;
-        tmp = tmp;
 
+        PyObject *tmp = NULL;
         int lineno;
         int col_offset;
 
