diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 7f22f7f..8de5314 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -3375,8 +3375,8 @@
 obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
 
         if (obj == Py_None) {
@@ -3524,8 +3524,8 @@
 obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         int lineno;
         int col_offset;
@@ -4720,8 +4720,8 @@
 obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         int lineno;
         int col_offset;
@@ -5836,8 +5836,8 @@
 obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Load_type);
         if (isinstance == -1) {
@@ -5896,8 +5896,8 @@
 obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
 
         if (obj == Py_None) {
@@ -6019,8 +6019,8 @@
 obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)And_type);
         if (isinstance == -1) {
@@ -6047,8 +6047,8 @@
 obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Add_type);
         if (isinstance == -1) {
@@ -6155,8 +6155,8 @@
 obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Invert_type);
         if (isinstance == -1) {
@@ -6199,8 +6199,8 @@
 obj2ast_cmpop(PyObject* obj, cmpop_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         isinstance = PyObject_IsInstance(obj, (PyObject *)Eq_type);
         if (isinstance == -1) {
@@ -6355,8 +6355,8 @@
 obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
 {
         PyObject* tmp = NULL;
-        tmp = tmp;
         int isinstance;
+        tmp = tmp;
 
         int lineno;
         int col_offset;
