Issue #22570: Renamed Py_SETREF to Py_XSETREF.
diff --git a/Include/object.h b/Include/object.h
index a032005..da8befa 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -856,14 +856,14 @@
  *
  * The safe way is:
  *
- *      Py_SETREF(op, op2);
+ *      Py_XSETREF(op, op2);
  *
  * That arranges to set `op` to `op2` _before_ decref'ing, so that any code
  * triggered as a side-effect of `op` getting torn down no longer believes
  * `op` points to a valid object.
  */
 
-#define Py_SETREF(op, op2)                      \
+#define Py_XSETREF(op, op2)                     \
     do {                                        \
         PyObject *_py_tmp = (PyObject *)(op);   \
         (op) = (op2);                           \
diff --git a/Modules/_bz2module.c b/Modules/_bz2module.c
index 425845f..e3e0eb1 100644
--- a/Modules/_bz2module.c
+++ b/Modules/_bz2module.c
@@ -540,7 +540,7 @@
     if (d->eof) {
         d->needs_input = 0;
         if (d->bzs_avail_in_real > 0) {
-            Py_SETREF(d->unused_data,
+            Py_XSETREF(d->unused_data,
                       PyBytes_FromStringAndSize(bzs->next_in, d->bzs_avail_in_real));
             if (d->unused_data == NULL)
                 goto error;
diff --git a/Modules/_csv.c b/Modules/_csv.c
index c0be739..e01c56e 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -277,7 +277,7 @@
             if (PyUnicode_READY(src) == -1)
                 return -1;
             Py_INCREF(src);
-            Py_SETREF(*target, src);
+            Py_XSETREF(*target, src);
         }
     }
     return 0;
@@ -783,7 +783,7 @@
 static int
 parse_reset(ReaderObj *self)
 {
-    Py_SETREF(self->fields, PyList_New(0));
+    Py_XSETREF(self->fields, PyList_New(0));
     if (self->fields == NULL)
         return -1;
     self->field_len = 0;
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 9f7bcf8..2bf088a 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -391,7 +391,7 @@
         Py_DECREF((PyObject *)dict);
         return NULL;
     }
-    Py_SETREF(result->tp_dict, (PyObject *)dict);
+    Py_XSETREF(result->tp_dict, (PyObject *)dict);
     dict->format = _ctypes_alloc_format_string(NULL, "B");
     if (dict->format == NULL) {
         Py_DECREF(result);
@@ -870,7 +870,7 @@
         return -1;
     }
     Py_INCREF(proto);
-    Py_SETREF(stgdict->proto, proto);
+    Py_XSETREF(stgdict->proto, proto);
     return 0;
 }
 
@@ -960,7 +960,7 @@
         Py_DECREF((PyObject *)stgdict);
         return NULL;
     }
-    Py_SETREF(result->tp_dict, (PyObject *)stgdict);
+    Py_XSETREF(result->tp_dict, (PyObject *)stgdict);
 
     return (PyObject *)result;
 }
@@ -1403,7 +1403,7 @@
     /* replace the class dict by our updated spam dict */
     if (-1 == PyDict_Update((PyObject *)stgdict, result->tp_dict))
         goto error;
-    Py_SETREF(result->tp_dict, (PyObject *)stgdict);  /* steal the reference */
+    Py_XSETREF(result->tp_dict, (PyObject *)stgdict);  /* steal the reference */
     stgdict = NULL;
 
     /* Special case for character arrays.
@@ -1816,7 +1816,7 @@
         Py_DECREF((PyObject *)stgdict);
         return NULL;
     }
-    Py_SETREF(result->tp_dict, (PyObject *)stgdict);
+    Py_XSETREF(result->tp_dict, (PyObject *)stgdict);
 
     return (PyObject *)result;
 }
@@ -1944,7 +1944,7 @@
         Py_DECREF((PyObject *)stgdict);
         return NULL;
     }
-    Py_SETREF(result->tp_dict, (PyObject *)stgdict);
+    Py_XSETREF(result->tp_dict, (PyObject *)stgdict);
 
     /* Install from_param class methods in ctypes base classes.
        Overrides the PyCSimpleType_from_param generic method.
@@ -2307,7 +2307,7 @@
         Py_DECREF((PyObject *)stgdict);
         return NULL;
     }
-    Py_SETREF(result->tp_dict, (PyObject *)stgdict);
+    Py_XSETREF(result->tp_dict, (PyObject *)stgdict);
 
     if (-1 == make_funcptrtype_dict(stgdict)) {
         Py_DECREF(result);
@@ -2451,7 +2451,7 @@
         return -1;
     }
     if (ob->b_objects == NULL || !PyDict_CheckExact(ob->b_objects)) {
-        Py_SETREF(ob->b_objects, keep); /* refcount consumed */
+        Py_XSETREF(ob->b_objects, keep); /* refcount consumed */
         return 0;
     }
     key = unique_key(target, index);
@@ -2955,7 +2955,7 @@
         return -1;
     }
     Py_XINCREF(ob);
-    Py_SETREF(self->errcheck, ob);
+    Py_XSETREF(self->errcheck, ob);
     return 0;
 }
 
@@ -2984,8 +2984,8 @@
         return -1;
     }
     Py_INCREF(ob);
-    Py_SETREF(self->restype, ob);
-    Py_SETREF(self->checker, PyObject_GetAttrString(ob, "_check_retval_"));
+    Py_XSETREF(self->restype, ob);
+    Py_XSETREF(self->checker, PyObject_GetAttrString(ob, "_check_retval_"));
     if (self->checker == NULL)
         PyErr_Clear();
     return 0;
@@ -3022,9 +3022,9 @@
         converters = converters_from_argtypes(ob);
         if (!converters)
             return -1;
-        Py_SETREF(self->converters, converters);
+        Py_XSETREF(self->converters, converters);
         Py_INCREF(ob);
-        Py_SETREF(self->argtypes, ob);
+        Py_XSETREF(self->argtypes, ob);
     }
     return 0;
 }
@@ -5150,7 +5150,7 @@
         return -1;
 
     Py_INCREF(args);
-    Py_SETREF(((PyBaseExceptionObject *)self)->args, args);
+    Py_XSETREF(((PyBaseExceptionObject *)self)->args, args);
 
     return 0;
 }
diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index 26bf094..9ed2a4c 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -313,7 +313,7 @@
         return NULL;
     }
     Py_INCREF(temp);
-    Py_SETREF(po->wo, temp);
+    Py_XSETREF(po->wo, temp);
     Py_INCREF(Py_None);
     return Py_None;
 }
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 261c4bc..e5191a0 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -1058,7 +1058,7 @@
     /* Offset is normalized, so it is negative if days < 0 */
     if (GET_TD_DAYS(offset) < 0) {
         sign = '-';
-        Py_SETREF(offset, delta_negative((PyDateTime_Delta *)offset));
+        Py_XSETREF(offset, delta_negative((PyDateTime_Delta *)offset));
         if (offset == NULL)
             return -1;
     }
@@ -3045,7 +3045,7 @@
     if (dst == Py_None)
         goto Inconsistent;
     if (delta_bool((PyDateTime_Delta *)dst) != 0) {
-        Py_SETREF(result, add_datetime_timedelta((PyDateTime_DateTime *)result,
+        Py_XSETREF(result, add_datetime_timedelta((PyDateTime_DateTime *)result,
                                                  (PyDateTime_Delta *)dst, 1));
         if (result == NULL)
             goto Fail;
@@ -4445,7 +4445,7 @@
                 return NULL;
 
             if (offdiff != NULL) {
-                Py_SETREF(result, delta_subtract(result, offdiff));
+                Py_XSETREF(result, delta_subtract(result, offdiff));
                 Py_DECREF(offdiff);
             }
         }
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c
index 3c2ad85..0c02d28 100644
--- a/Modules/_decimal/_decimal.c
+++ b/Modules/_decimal/_decimal.c
@@ -3439,14 +3439,14 @@
         goto error;
     }
 
-    Py_SETREF(exponent, long_methods->nb_power(tmp, exponent, Py_None));
+    Py_XSETREF(exponent, long_methods->nb_power(tmp, exponent, Py_None));
     Py_DECREF(tmp);
     if (exponent == NULL) {
         goto error;
     }
 
     if (exp >= 0) {
-        Py_SETREF(numerator, long_methods->nb_multiply(numerator, exponent));
+        Py_XSETREF(numerator, long_methods->nb_multiply(numerator, exponent));
         if (numerator == NULL) {
             goto error;
         }
@@ -3462,8 +3462,8 @@
         if (tmp == NULL) {
             goto error;
         }
-        Py_SETREF(numerator, long_methods->nb_floor_divide(numerator, tmp));
-        Py_SETREF(denominator, long_methods->nb_floor_divide(denominator, tmp));
+        Py_XSETREF(numerator, long_methods->nb_floor_divide(numerator, tmp));
+        Py_XSETREF(denominator, long_methods->nb_floor_divide(denominator, tmp));
         Py_DECREF(tmp);
         if (numerator == NULL || denominator == NULL) {
             goto error;
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index 0effc3f..5c49c15 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -397,7 +397,7 @@
 
     /* Replace the objects already pointed to by tag, text and tail. */
     Py_INCREF(tag);
-    Py_SETREF(self_elem->tag, tag);
+    Py_XSETREF(self_elem->tag, tag);
 
     tmp = self_elem->text;
     Py_INCREF(Py_None);
@@ -964,7 +964,7 @@
     }
 
     Py_INCREF(tag);
-    Py_SETREF(self->tag, tag);
+    Py_XSETREF(self->tag, tag);
 
     _clear_joined_ptr(&self->text);
     self->text = text ? JOIN_SET(text, PyList_CheckExact(text)) : Py_None;
@@ -1008,7 +1008,7 @@
     /* Stash attrib. */
     if (attrib) {
         Py_INCREF(attrib);
-        Py_SETREF(self->extra->attrib, attrib);
+        Py_XSETREF(self->extra->attrib, attrib);
     }
 
     Py_RETURN_NONE;
@@ -1957,7 +1957,7 @@
 {
     _VALIDATE_ATTR_VALUE(value);
     Py_INCREF(value);
-    Py_SETREF(self->tag, value);
+    Py_XSETREF(self->tag, value);
     return 0;
 }
 
@@ -1990,7 +1990,7 @@
             return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(self->extra->attrib, value);
+    Py_XSETREF(self->extra->attrib, value);
     return 0;
 }
 
@@ -2338,7 +2338,7 @@
 {
     if (element_factory) {
         Py_INCREF(element_factory);
-        Py_SETREF(self->element_factory, element_factory);
+        Py_XSETREF(self->element_factory, element_factory);
     }
 
     return 0;
@@ -2524,9 +2524,9 @@
     self->index++;
 
     Py_INCREF(node);
-    Py_SETREF(self->this, node);
+    Py_XSETREF(self->this, node);
     Py_INCREF(node);
-    Py_SETREF(self->last, node);
+    Py_XSETREF(self->last, node);
 
     if (treebuilder_append_event(self, self->start_event_obj, node) < 0)
         goto error;
@@ -3583,7 +3583,7 @@
     events_append = PyObject_GetAttrString(events_queue, "append");
     if (events_append == NULL)
         return NULL;
-    Py_SETREF(target->events_append, events_append);
+    Py_XSETREF(target->events_append, events_append);
 
     /* clear out existing events */
     Py_CLEAR(target->start_event_obj);
@@ -3618,18 +3618,18 @@
 
         Py_INCREF(event_name_obj);
         if (strcmp(event_name, "start") == 0) {
-            Py_SETREF(target->start_event_obj, event_name_obj);
+            Py_XSETREF(target->start_event_obj, event_name_obj);
         } else if (strcmp(event_name, "end") == 0) {
-            Py_SETREF(target->end_event_obj, event_name_obj);
+            Py_XSETREF(target->end_event_obj, event_name_obj);
         } else if (strcmp(event_name, "start-ns") == 0) {
-            Py_SETREF(target->start_ns_event_obj, event_name_obj);
+            Py_XSETREF(target->start_ns_event_obj, event_name_obj);
             EXPAT(SetNamespaceDeclHandler)(
                 self->parser,
                 (XML_StartNamespaceDeclHandler) expat_start_ns_handler,
                 (XML_EndNamespaceDeclHandler) expat_end_ns_handler
                 );
         } else if (strcmp(event_name, "end-ns") == 0) {
-            Py_SETREF(target->end_ns_event_obj, event_name_obj);
+            Py_XSETREF(target->end_ns_event_obj, event_name_obj);
             EXPAT(SetNamespaceDeclHandler)(
                 self->parser,
                 (XML_StartNamespaceDeclHandler) expat_start_ns_handler,
diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c
index 8da5eb3..6205708 100644
--- a/Modules/_functoolsmodule.c
+++ b/Modules/_functoolsmodule.c
@@ -294,10 +294,10 @@
     else
         Py_INCREF(dict);
 
-    Py_SETREF(pto->fn, fn);
-    Py_SETREF(pto->args, fnargs);
-    Py_SETREF(pto->kw, kw);
-    Py_SETREF(pto->dict, dict);
+    Py_XSETREF(pto->fn, fn);
+    Py_XSETREF(pto->args, fnargs);
+    Py_XSETREF(pto->kw, kw);
+    Py_XSETREF(pto->dict, dict);
     Py_RETURN_NONE;
 }
 
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index 0632014..f4d179a 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -1196,7 +1196,7 @@
         Py_CLEAR(res);
         goto end;
     }
-    Py_SETREF(res, _PyBytes_Join(_PyIO_empty_bytes, chunks));
+    Py_XSETREF(res, _PyBytes_Join(_PyIO_empty_bytes, chunks));
 
 end:
     LEAVE_BUFFERED(self)
@@ -1452,7 +1452,7 @@
         return -1;
 
     Py_INCREF(raw);
-    Py_SETREF(self->raw, raw);
+    Py_XSETREF(self->raw, raw);
     self->buffer_size = buffer_size;
     self->readable = 1;
     self->writable = 0;
@@ -1804,7 +1804,7 @@
         return -1;
 
     Py_INCREF(raw);
-    Py_SETREF(self->raw, raw);
+    Py_XSETREF(self->raw, raw);
     self->readable = 0;
     self->writable = 1;
 
@@ -2307,7 +2307,7 @@
         return -1;
 
     Py_INCREF(raw);
-    Py_SETREF(self->raw, raw);
+    Py_XSETREF(self->raw, raw);
     self->buffer_size = buffer_size;
     self->readable = 1;
     self->writable = 1;
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index 6333e46..84d2c5d 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -96,7 +96,7 @@
         return -1;
     memcpy(PyBytes_AS_STRING(new_buf), PyBytes_AS_STRING(self->buf),
            self->string_size);
-    Py_SETREF(self->buf, new_buf);
+    Py_XSETREF(self->buf, new_buf);
     return 0;
 }
 
@@ -967,7 +967,7 @@
     if (initvalue && initvalue != Py_None) {
         if (PyBytes_CheckExact(initvalue)) {
             Py_INCREF(initvalue);
-            Py_SETREF(self->buf, initvalue);
+            Py_XSETREF(self->buf, initvalue);
             self->string_size = PyBytes_GET_SIZE(initvalue);
         }
         else {
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
index 8c9732b..9af07bf 100644
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -995,7 +995,7 @@
                 "Oi", self->decoder, (int)self->readtranslate);
             if (incrementalDecoder == NULL)
                 goto error;
-            Py_SETREF(self->decoder, incrementalDecoder);
+            Py_XSETREF(self->decoder, incrementalDecoder);
         }
     }
 
@@ -1373,7 +1373,7 @@
 static void
 textiowrapper_set_decoded_chars(textio *self, PyObject *chars)
 {
-    Py_SETREF(self->decoded_chars, chars);
+    Py_XSETREF(self->decoded_chars, chars);
     self->decoded_chars_used = 0;
 }
 
@@ -1521,7 +1521,7 @@
             dec_buffer = NULL; /* Reference lost to PyBytes_Concat */
             goto fail;
         }
-        Py_SETREF(self->snapshot, Py_BuildValue("NN", dec_flags, next_input));
+        Py_XSETREF(self->snapshot, Py_BuildValue("NN", dec_flags, next_input));
     }
     Py_DECREF(input_chunk);
 
@@ -1627,7 +1627,7 @@
         if (chunks != NULL) {
             if (result != NULL && PyList_Append(chunks, result) < 0)
                 goto fail;
-            Py_SETREF(result, PyUnicode_Join(_PyIO_empty_str, chunks));
+            Py_XSETREF(result, PyUnicode_Join(_PyIO_empty_str, chunks));
             if (result == NULL)
                 goto fail;
             Py_CLEAR(chunks);
diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c
index d3ed758..ccfb513 100644
--- a/Modules/_lsprof.c
+++ b/Modules/_lsprof.c
@@ -778,7 +778,7 @@
         return -1;
     pObj->externalTimerUnit = timeunit;
     Py_XINCREF(timer);
-    Py_SETREF(pObj->externalTimer, timer);
+    Py_XSETREF(pObj->externalTimer, timer);
     return 0;
 }
 
diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c
index 9bc8033..f3bcd76 100644
--- a/Modules/_lzmamodule.c
+++ b/Modules/_lzmamodule.c
@@ -1011,7 +1011,7 @@
     if (d->eof) {
         d->needs_input = 0;
         if (lzs->avail_in > 0) {
-            Py_SETREF(d->unused_data,
+            Py_XSETREF(d->unused_data,
                       PyBytes_FromStringAndSize((char *)lzs->next_in, lzs->avail_in));
             if (d->unused_data == NULL)
                 goto error;
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 5c3530b..049b737 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -869,7 +869,7 @@
 static int
 _Pickler_ClearBuffer(PicklerObject *self)
 {
-    Py_SETREF(self->output_buffer,
+    Py_XSETREF(self->output_buffer,
               PyBytes_FromStringAndSize(NULL, self->max_output_len));
     if (self->output_buffer == NULL)
         return -1;
@@ -3116,7 +3116,7 @@
             return -1;
         }
         Py_INCREF(item);
-        Py_SETREF(*module_name, item);
+        Py_XSETREF(*module_name, item);
     }
     else if (PyErr_Occurred()) {
         return -1;
@@ -4506,7 +4506,7 @@
     }
 
     Py_INCREF(value);
-    Py_SETREF(self->pers_func, value);
+    Py_XSETREF(self->pers_func, value);
 
     return 0;
 }
@@ -6955,7 +6955,7 @@
     }
 
     Py_INCREF(value);
-    Py_SETREF(self->pers_func, value);
+    Py_XSETREF(self->pers_func, value);
 
     return 0;
 }
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 75ed1f8..22298d9 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -204,7 +204,7 @@
         node = node->next;
     }
 
-    Py_SETREF(self->statement_cache,
+    Py_XSETREF(self->statement_cache,
               (pysqlite_Cache *)PyObject_CallFunction((PyObject *)&pysqlite_CacheType, "O", self));
     Py_DECREF(self);
     self->statement_cache->decref_factory = 0;
@@ -319,7 +319,7 @@
 
     if (cursor && self->row_factory != Py_None) {
         Py_INCREF(self->row_factory);
-        Py_SETREF(((pysqlite_Cursor *)cursor)->row_factory, self->row_factory);
+        Py_XSETREF(((pysqlite_Cursor *)cursor)->row_factory, self->row_factory);
     }
 
     return cursor;
@@ -794,7 +794,7 @@
         }
     }
 
-    Py_SETREF(self->statements, new_list);
+    Py_XSETREF(self->statements, new_list);
 }
 
 static void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self)
@@ -825,7 +825,7 @@
         }
     }
 
-    Py_SETREF(self->cursors, new_list);
+    Py_XSETREF(self->cursors, new_list);
 }
 
 PyObject* pysqlite_connection_create_function(pysqlite_Connection* self, PyObject* args, PyObject* kwargs)
diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c
index cdb91ee..63d705e 100644
--- a/Modules/_sqlite/cursor.c
+++ b/Modules/_sqlite/cursor.c
@@ -170,7 +170,7 @@
         return 0;
     }
 
-    Py_SETREF(self->row_cast_map, PyList_New(0));
+    Py_XSETREF(self->row_cast_map, PyList_New(0));
 
     for (i = 0; i < sqlite3_column_count(self->statement->st); i++) {
         converter = NULL;
@@ -510,7 +510,7 @@
 
     /* reset description and rowcount */
     Py_INCREF(Py_None);
-    Py_SETREF(self->description, Py_None);
+    Py_XSETREF(self->description, Py_None);
     self->rowcount = -1L;
 
     func_args = PyTuple_New(1);
@@ -526,7 +526,7 @@
         (void)pysqlite_statement_reset(self->statement);
     }
 
-    Py_SETREF(self->statement,
+    Py_XSETREF(self->statement,
               (pysqlite_Statement *)pysqlite_cache_get(self->connection->statement_cache, func_args));
     Py_DECREF(func_args);
 
@@ -535,7 +535,7 @@
     }
 
     if (self->statement->in_use) {
-        Py_SETREF(self->statement,
+        Py_XSETREF(self->statement,
                   PyObject_New(pysqlite_Statement, &pysqlite_StatementType));
         if (!self->statement) {
             goto error;
@@ -652,7 +652,7 @@
                 numcols = sqlite3_column_count(self->statement->st);
                 Py_END_ALLOW_THREADS
 
-                Py_SETREF(self->description, PyTuple_New(numcols));
+                Py_XSETREF(self->description, PyTuple_New(numcols));
                 if (!self->description) {
                     goto error;
                 }
diff --git a/Modules/_sre.c b/Modules/_sre.c
index fb0ab03..ab8a17e 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -753,7 +753,7 @@
     if (!copy)
         return 0;
 
-    Py_SETREF(*object, copy);
+    Py_XSETREF(*object, copy);
 
     return 1; /* success */
 }
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 838d5ba..e6e98cd 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -1589,7 +1589,7 @@
         return -1;
 #else
         Py_INCREF(value);
-        Py_SETREF(self->ctx, (PySSLContext *)value);
+        Py_XSETREF(self->ctx, (PySSLContext *)value);
         SSL_set_SSL_CTX(self->ssl, self->ctx->ctx);
 #endif
     } else {
@@ -1646,7 +1646,7 @@
 static int
 PySSL_set_owner(PySSLSocket *self, PyObject *value, void *c)
 {
-    Py_SETREF(self->owner, PyWeakref_NewRef(value, NULL));
+    Py_XSETREF(self->owner, PyWeakref_NewRef(value, NULL));
     if (self->owner == NULL)
         return -1;
     return 0;
diff --git a/Modules/_struct.c b/Modules/_struct.c
index 02db84e..7626750 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -1437,7 +1437,7 @@
         return -1;
     }
 
-    Py_SETREF(soself->s_format, o_format);
+    Py_XSETREF(soself->s_format, o_format);
 
     ret = prepare_s(soself);
     return ret;
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index 70a606f..e1cdb2c 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -793,7 +793,7 @@
                               ctx->errors, final ? MBENC_FLUSH | MBENC_RESET : 0);
     if (r == NULL) {
         /* recover the original pending buffer */
-        Py_SETREF(ctx->pending, origpending);
+        Py_XSETREF(ctx->pending, origpending);
         origpending = NULL;
         goto errorexit;
     }
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
index a990d25..9be5ccf 100644
--- a/Modules/faulthandler.c
+++ b/Modules/faulthandler.c
@@ -488,7 +488,7 @@
         return NULL;
 
     Py_XINCREF(file);
-    Py_SETREF(fatal_error.file, file);
+    Py_XSETREF(fatal_error.file, file);
     fatal_error.fd = fd;
     fatal_error.all_threads = all_threads;
     fatal_error.interp = tstate->interp;
@@ -668,7 +668,7 @@
     cancel_dump_traceback_later();
 
     Py_XINCREF(file);
-    Py_SETREF(thread.file, file);
+    Py_XSETREF(thread.file, file);
     thread.fd = fd;
     thread.timeout_us = timeout_us;
     thread.repeat = repeat;
@@ -846,7 +846,7 @@
     }
 
     Py_XINCREF(file);
-    Py_SETREF(user->file, file);
+    Py_XSETREF(user->file, file);
     user->fd = fd;
     user->all_threads = all_threads;
     user->chain = chain;
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index 9fb9d74..532ce01 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -108,12 +108,12 @@
             }
         }
 
-        Py_SETREF(gbo->currkey, newkey);
-        Py_SETREF(gbo->currvalue, newvalue);
+        Py_XSETREF(gbo->currkey, newkey);
+        Py_XSETREF(gbo->currvalue, newvalue);
     }
 
     Py_INCREF(gbo->currkey);
-    Py_SETREF(gbo->tgtkey, gbo->currkey);
+    Py_XSETREF(gbo->tgtkey, gbo->currkey);
 
     grouper = _grouper_create(gbo, gbo->tgtkey);
     if (grouper == NULL)
@@ -150,11 +150,11 @@
     if (!PyArg_ParseTuple(state, "OOO", &currkey, &currvalue, &tgtkey))
         return NULL;
     Py_INCREF(currkey);
-    Py_SETREF(lz->currkey, currkey);
+    Py_XSETREF(lz->currkey, currkey);
     Py_INCREF(currvalue);
-    Py_SETREF(lz->currvalue, currvalue);
+    Py_XSETREF(lz->currvalue, currvalue);
     Py_INCREF(tgtkey);
-    Py_SETREF(lz->tgtkey, tgtkey);
+    Py_XSETREF(lz->tgtkey, tgtkey);
     Py_RETURN_NONE;
 }
 
@@ -622,7 +622,7 @@
         link = teedataobject_jumplink(to->dataobj);
         if (link == NULL)
             return NULL;
-        Py_SETREF(to->dataobj, (teedataobject *)link);
+        Py_XSETREF(to->dataobj, (teedataobject *)link);
         to->index = 0;
     }
     value = teedataobject_getitem(to->dataobj, to->index);
@@ -734,7 +734,7 @@
         return NULL;
     }
     Py_INCREF(tdo);
-    Py_SETREF(to->dataobj, tdo);
+    Py_XSETREF(to->dataobj, tdo);
     to->index = index;
     Py_RETURN_NONE;
 }
@@ -975,7 +975,7 @@
     if (!PyArg_ParseTuple(state, "O!i", &PyList_Type, &saved, &firstpass))
         return NULL;
     Py_INCREF(saved);
-    Py_SETREF(lz->saved, saved);
+    Py_XSETREF(lz->saved, saved);
     lz->firstpass = firstpass != 0;
     lz->index = 0;
     Py_RETURN_NONE;
@@ -1907,9 +1907,9 @@
         return NULL;
 
     Py_INCREF(source);
-    Py_SETREF(lz->source, source);
+    Py_XSETREF(lz->source, source);
     Py_XINCREF(active);
-    Py_SETREF(lz->active, active);
+    Py_XSETREF(lz->active, active);
     Py_RETURN_NONE;
 }
 
@@ -2266,7 +2266,7 @@
         Py_INCREF(element);
         PyTuple_SET_ITEM(result, i, element);
     }
-    Py_SETREF(lz->result, result);
+    Py_XSETREF(lz->result, result);
     Py_RETURN_NONE;
 }
 
@@ -2587,7 +2587,7 @@
         PyTuple_SET_ITEM(result, i, element);
     }
 
-    Py_SETREF(lz->result, result);
+    Py_XSETREF(lz->result, result);
     Py_RETURN_NONE;
 }
 
@@ -2917,7 +2917,7 @@
         Py_INCREF(element);
         PyTuple_SET_ITEM(result, i, element);
     }
-    Py_SETREF(lz->result, result);
+    Py_XSETREF(lz->result, result);
     Py_RETURN_NONE;
 }
 
@@ -3305,7 +3305,7 @@
         Py_INCREF(element);
         PyTuple_SET_ITEM(result, i, element);
     }
-    Py_SETREF(po->result, result);
+    Py_XSETREF(po->result, result);
     Py_RETURN_NONE;
 }
 
@@ -3457,7 +3457,7 @@
         return NULL;
 
     Py_INCREF(newtotal);
-    Py_SETREF(lz->total, newtotal);
+    Py_XSETREF(lz->total, newtotal);
     return newtotal;
 }
 
@@ -3490,7 +3490,7 @@
 accumulate_setstate(accumulateobject *lz, PyObject *state)
 {
     Py_INCREF(state);
-    Py_SETREF(lz->total, state);
+    Py_XSETREF(lz->total, state);
     Py_RETURN_NONE;
 }
 
@@ -4469,7 +4469,7 @@
 zip_longest_setstate(ziplongestobject *lz, PyObject *state)
 {
     Py_INCREF(state);
-    Py_SETREF(lz->fillvalue, state);
+    Py_XSETREF(lz->fillvalue, state);
     Py_RETURN_NONE;
 }
 
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index c6d3515..2dafbb0 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -1362,7 +1362,7 @@
             Py_INCREF(v);
             c_handler = handler_info[handlernum].handler;
         }
-        Py_SETREF(self->handlers[handlernum], v);
+        Py_XSETREF(self->handlers[handlernum], v);
         handler_info[handlernum].setter(self->itself, c_handler);
         return 1;
     }
diff --git a/Modules/readline.c b/Modules/readline.c
index 27459d0..a323b69 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -324,7 +324,7 @@
     }
     else if (PyCallable_Check(function)) {
         Py_INCREF(function);
-        Py_SETREF(*hook_var, function);
+        Py_XSETREF(*hook_var, function);
     }
     else {
         PyErr_Format(PyExc_TypeError,
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index da454de..3edf158 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -1266,7 +1266,7 @@
     if (Handlers[SIGINT].func == DefaultHandler) {
         /* Install default int handler */
         Py_INCREF(IntHandler);
-        Py_SETREF(Handlers[SIGINT].func, IntHandler);
+        Py_XSETREF(Handlers[SIGINT].func, IntHandler);
         old_siginthandler = PyOS_setsig(SIGINT, signal_handler);
     }
 
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
index e840271..3abb9f0 100644
--- a/Modules/zipimport.c
+++ b/Modules/zipimport.c
@@ -155,7 +155,7 @@
             tmp = PyUnicode_FromFormat("%U%c", self->prefix, SEP);
             if (tmp == NULL)
                 goto error;
-            Py_SETREF(self->prefix, tmp);
+            Py_XSETREF(self->prefix, tmp);
         }
     }
     else
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index db3d8c9..04485ee 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -667,7 +667,7 @@
                       PyBytes_AS_STRING(self->unused_data), old_size);
             Py_MEMCPY(PyBytes_AS_STRING(new_data) + old_size,
                       self->zst.next_in, self->zst.avail_in);
-            Py_SETREF(self->unused_data, new_data);
+            Py_XSETREF(self->unused_data, new_data);
             self->zst.avail_in = 0;
         }
     }
@@ -679,7 +679,7 @@
                 (char *)self->zst.next_in, self->zst.avail_in);
         if (new_data == NULL)
             return -1;
-        Py_SETREF(self->unconsumed_tail, new_data);
+        Py_XSETREF(self->unconsumed_tail, new_data);
     }
     return 0;
 }
@@ -961,11 +961,11 @@
         goto error;
     }
     Py_INCREF(self->unused_data);
-    Py_SETREF(retval->unused_data, self->unused_data);
+    Py_XSETREF(retval->unused_data, self->unused_data);
     Py_INCREF(self->unconsumed_tail);
-    Py_SETREF(retval->unconsumed_tail, self->unconsumed_tail);
+    Py_XSETREF(retval->unconsumed_tail, self->unconsumed_tail);
     Py_XINCREF(self->zdict);
-    Py_SETREF(retval->zdict, self->zdict);
+    Py_XSETREF(retval->zdict, self->zdict);
     retval->eof = self->eof;
 
     /* Mark it as being initialized */
@@ -1017,11 +1017,11 @@
     }
 
     Py_INCREF(self->unused_data);
-    Py_SETREF(retval->unused_data, self->unused_data);
+    Py_XSETREF(retval->unused_data, self->unused_data);
     Py_INCREF(self->unconsumed_tail);
-    Py_SETREF(retval->unconsumed_tail, self->unconsumed_tail);
+    Py_XSETREF(retval->unconsumed_tail, self->unconsumed_tail);
     Py_XINCREF(self->zdict);
-    Py_SETREF(retval->zdict, self->zdict);
+    Py_XSETREF(retval->zdict, self->zdict);
     retval->eof = self->eof;
 
     /* Mark it as being initialized */
diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
index 5bbbcde..639ee71 100644
--- a/Objects/bytesobject.c
+++ b/Objects/bytesobject.c
@@ -3698,7 +3698,7 @@
         /* Multiple references, need to create new object */
         PyObject *v;
         v = bytes_concat(*pv, w);
-        Py_SETREF(*pv, v);
+        Py_XSETREF(*pv, v);
     }
 }
 
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index 2002d21..80fc662 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -1509,7 +1509,7 @@
         PyObject *get_doc = _PyObject_GetAttrId(get, &PyId___doc__);
         if (get_doc) {
             if (Py_TYPE(self) == &PyProperty_Type) {
-                Py_SETREF(prop->prop_doc, get_doc);
+                Py_XSETREF(prop->prop_doc, get_doc);
             }
             else {
                 /* If this is a property subclass, put __doc__
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 7374368..2c7688c 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -63,7 +63,7 @@
         return -1;
 
     Py_INCREF(args);
-    Py_SETREF(self->args, args);
+    Py_XSETREF(self->args, args);
 
     return 0;
 }
@@ -202,7 +202,7 @@
     seq = PySequence_Tuple(val);
     if (!seq)
         return -1;
-    Py_SETREF(self->args, seq);
+    Py_XSETREF(self->args, seq);
     return 0;
 }
 
@@ -231,7 +231,7 @@
     }
 
     Py_XINCREF(tb);
-    Py_SETREF(self->traceback, tb);
+    Py_XSETREF(self->traceback, tb);
     return 0;
 }
 
@@ -327,7 +327,7 @@
 PyException_SetCause(PyObject *self, PyObject *cause)
 {
     ((PyBaseExceptionObject *)self)->suppress_context = 1;
-    Py_SETREF(((PyBaseExceptionObject *)self)->cause, cause);
+    Py_XSETREF(((PyBaseExceptionObject *)self)->cause, cause);
 }
 
 PyObject *
@@ -341,7 +341,7 @@
 void
 PyException_SetContext(PyObject *self, PyObject *context)
 {
-    Py_SETREF(((PyBaseExceptionObject *)self)->context, context);
+    Py_XSETREF(((PyBaseExceptionObject *)self)->context, context);
 }
 
 
@@ -557,11 +557,11 @@
         return 0;
     if (size == 1) {
         Py_INCREF(PyTuple_GET_ITEM(args, 0));
-        Py_SETREF(self->code, PyTuple_GET_ITEM(args, 0));
+        Py_XSETREF(self->code, PyTuple_GET_ITEM(args, 0));
     }
     else { /* size > 1 */
         Py_INCREF(args);
-        Py_SETREF(self->code, args);
+        Py_XSETREF(self->code, args);
     }
     return 0;
 }
@@ -622,7 +622,7 @@
     kwd = PyDict_GetItemString(kwds, #kwd); \
     if (kwd) { \
         Py_INCREF(kwd); \
-        Py_SETREF(self->kwd, kwd); \
+        Py_XSETREF(self->kwd, kwd); \
         if (PyDict_DelItemString(kwds, #kwd)) \
             return -1; \
     } \
@@ -641,7 +641,7 @@
         return -1;
 
     Py_INCREF(msg);
-    Py_SETREF(self->msg, msg);
+    Py_XSETREF(self->msg, msg);
 
     return 0;
 }
@@ -851,7 +851,7 @@
 #endif
 
     /* Steals the reference to args */
-    Py_SETREF(self->args, args);
+    Py_XSETREF(self->args, args);
     *p_args = args = NULL;
 
     return 0;
@@ -1271,7 +1271,7 @@
 
     if (lenargs >= 1) {
         Py_INCREF(PyTuple_GET_ITEM(args, 0));
-        Py_SETREF(self->msg, PyTuple_GET_ITEM(args, 0));
+        Py_XSETREF(self->msg, PyTuple_GET_ITEM(args, 0));
     }
     if (lenargs == 2) {
         info = PyTuple_GET_ITEM(args, 1);
@@ -1287,16 +1287,16 @@
         }
 
         Py_INCREF(PyTuple_GET_ITEM(info, 0));
-        Py_SETREF(self->filename, PyTuple_GET_ITEM(info, 0));
+        Py_XSETREF(self->filename, PyTuple_GET_ITEM(info, 0));
 
         Py_INCREF(PyTuple_GET_ITEM(info, 1));
-        Py_SETREF(self->lineno, PyTuple_GET_ITEM(info, 1));
+        Py_XSETREF(self->lineno, PyTuple_GET_ITEM(info, 1));
 
         Py_INCREF(PyTuple_GET_ITEM(info, 2));
-        Py_SETREF(self->offset, PyTuple_GET_ITEM(info, 2));
+        Py_XSETREF(self->offset, PyTuple_GET_ITEM(info, 2));
 
         Py_INCREF(PyTuple_GET_ITEM(info, 3));
-        Py_SETREF(self->text, PyTuple_GET_ITEM(info, 3));
+        Py_XSETREF(self->text, PyTuple_GET_ITEM(info, 3));
 
         Py_DECREF(info);
 
@@ -1541,7 +1541,7 @@
     PyObject *obj = PyUnicode_FromString(value);
     if (!obj)
         return -1;
-    Py_SETREF(*attr, obj);
+    Py_XSETREF(*attr, obj);
     return 0;
 }
 
@@ -1947,7 +1947,7 @@
         Py_buffer view;
         if (PyObject_GetBuffer(ude->object, &view, PyBUF_SIMPLE) != 0)
             goto error;
-        Py_SETREF(ude->object, PyBytes_FromStringAndSize(view.buf, view.len));
+        Py_XSETREF(ude->object, PyBytes_FromStringAndSize(view.buf, view.len));
         PyBuffer_Release(&view);
         if (!ude->object)
             goto error;
@@ -2856,7 +2856,7 @@
     }
     if (PyUnicode_Tailmatch(self->text, print_prefix,
                             start, text_len, -1)) {
-        Py_SETREF(self->msg,
+        Py_XSETREF(self->msg,
                   PyUnicode_FromString("Missing parentheses in call to 'print'"));
         return 1;
     }
@@ -2870,7 +2870,7 @@
     }
     if (PyUnicode_Tailmatch(self->text, exec_prefix,
                             start, text_len, -1)) {
-        Py_SETREF(self->msg,
+        Py_XSETREF(self->msg,
                   PyUnicode_FromString("Missing parentheses in call to 'exec'"));
         return 1;
     }
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index eb60659..32a0de1 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1494,13 +1494,13 @@
 
     /* fold in 2**exponent */
     if (exponent > 0) {
-        Py_SETREF(numerator,
+        Py_XSETREF(numerator,
                   long_methods->nb_lshift(numerator, py_exponent));
         if (numerator == NULL)
             goto error;
     }
     else {
-        Py_SETREF(denominator,
+        Py_XSETREF(denominator,
                   long_methods->nb_lshift(denominator, py_exponent));
         if (denominator == NULL)
             goto error;
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index da2d2ed..a4a862a 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -353,7 +353,7 @@
     f->f_lineno = PyFrame_GetLineNumber(f);
 
     Py_XINCREF(v);
-    Py_SETREF(f->f_trace, v);
+    Py_XSETREF(f->f_trace, v);
 
     return 0;
 }
@@ -853,7 +853,7 @@
             }
         } else if (values[j] != value) {
             Py_XINCREF(value);
-            Py_SETREF(values[j], value);
+            Py_XSETREF(values[j], value);
         }
         Py_XDECREF(value);
     }
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 2967634..c5f1a0a 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -127,7 +127,7 @@
         PyErr_SetString(PyExc_SystemError, "non-tuple default args");
         return -1;
     }
-    Py_SETREF(((PyFunctionObject *)op)->func_defaults, defaults);
+    Py_XSETREF(((PyFunctionObject *)op)->func_defaults, defaults);
     return 0;
 }
 
@@ -158,7 +158,7 @@
                         "non-dict keyword only default args");
         return -1;
     }
-    Py_SETREF(((PyFunctionObject *)op)->func_kwdefaults, defaults);
+    Py_XSETREF(((PyFunctionObject *)op)->func_kwdefaults, defaults);
     return 0;
 }
 
@@ -190,7 +190,7 @@
                      closure->ob_type->tp_name);
         return -1;
     }
-    Py_SETREF(((PyFunctionObject *)op)->func_closure, closure);
+    Py_XSETREF(((PyFunctionObject *)op)->func_closure, closure);
     return 0;
 }
 
@@ -221,7 +221,7 @@
                         "non-dict annotations");
         return -1;
     }
-    Py_SETREF(((PyFunctionObject *)op)->func_annotations, annotations);
+    Py_XSETREF(((PyFunctionObject *)op)->func_annotations, annotations);
     return 0;
 }
 
@@ -270,7 +270,7 @@
         return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(op->func_code, value);
+    Py_XSETREF(op->func_code, value);
     return 0;
 }
 
@@ -292,7 +292,7 @@
         return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(op->func_name, value);
+    Py_XSETREF(op->func_name, value);
     return 0;
 }
 
@@ -314,7 +314,7 @@
         return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(op->func_qualname, value);
+    Py_XSETREF(op->func_qualname, value);
     return 0;
 }
 
@@ -342,7 +342,7 @@
         return -1;
     }
     Py_XINCREF(value);
-    Py_SETREF(op->func_defaults, value);
+    Py_XSETREF(op->func_defaults, value);
     return 0;
 }
 
@@ -370,7 +370,7 @@
         return -1;
     }
     Py_XINCREF(value);
-    Py_SETREF(op->func_kwdefaults, value);
+    Py_XSETREF(op->func_kwdefaults, value);
     return 0;
 }
 
@@ -400,7 +400,7 @@
         return -1;
     }
     Py_XINCREF(value);
-    Py_SETREF(op->func_annotations, value);
+    Py_XSETREF(op->func_annotations, value);
     return 0;
 }
 
@@ -504,7 +504,7 @@
 
     if (name != Py_None) {
         Py_INCREF(name);
-        Py_SETREF(newfunc->func_name, name);
+        Py_XSETREF(newfunc->func_name, name);
     }
     if (defaults != Py_None) {
         Py_INCREF(defaults);
diff --git a/Objects/genobject.c b/Objects/genobject.c
index fdb3c03..c94a6ed 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -527,7 +527,7 @@
         return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(op->gi_name, value);
+    Py_XSETREF(op->gi_name, value);
     return 0;
 }
 
@@ -549,7 +549,7 @@
         return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(op->gi_qualname, value);
+    Py_XSETREF(op->gi_qualname, value);
     return 0;
 }
 
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 81b40ae..7c02be7 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -229,7 +229,7 @@
         return -1;
     }
     p = ((PyListObject *)op) -> ob_item + i;
-    Py_SETREF(*p, newitem);
+    Py_XSETREF(*p, newitem);
     return 0;
 }
 
@@ -735,7 +735,7 @@
     if (v == NULL)
         return list_ass_slice(a, i, i+1, v);
     Py_INCREF(v);
-    Py_SETREF(a->ob_item[i], v);
+    Py_XSETREF(a->ob_item[i], v);
     return 0;
 }
 
diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c
index 24c5f4c..a4cdc20 100644
--- a/Objects/moduleobject.c
+++ b/Objects/moduleobject.c
@@ -69,7 +69,7 @@
         return -1;
     if (PyUnicode_CheckExact(name)) {
         Py_INCREF(name);
-        Py_SETREF(mod->md_name, name);
+        Py_XSETREF(mod->md_name, name);
     }
 
     return 0;
diff --git a/Objects/object.c b/Objects/object.c
index 8072dbc..0817311 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -1220,7 +1220,7 @@
         return -1;
     }
     Py_INCREF(value);
-    Py_SETREF(*dictptr, value);
+    Py_XSETREF(*dictptr, value);
     return 0;
 }
 
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index 45656d2..7a114e0 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -1001,7 +1001,7 @@
         return NULL;
     cmp = PyObject_RichCompareBool(state, zero, Py_LT);
     if (cmp > 0) {
-        Py_SETREF(r->index, zero);
+        Py_XSETREF(r->index, zero);
         Py_RETURN_NONE;
     }
     Py_DECREF(zero);
@@ -1015,7 +1015,7 @@
         state = r->len;
 
     Py_INCREF(state);
-    Py_SETREF(r->index, state);
+    Py_XSETREF(r->index, state);
     Py_RETURN_NONE;
 }
 
@@ -1064,7 +1064,7 @@
     result = PyNumber_Add(r->start, product);
     Py_DECREF(product);
     if (result) {
-        Py_SETREF(r->index, new_index);
+        Py_XSETREF(r->index, new_index);
     }
     else {
         Py_DECREF(new_index);
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 5020aff..a7774e2 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -162,7 +162,7 @@
         return -1;
     }
     p = ((PyTupleObject *)op) -> ob_item + i;
-    Py_SETREF(*p, newitem);
+    Py_XSETREF(*p, newitem);
     return 0;
 }
 
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 46fb27e..a01862d 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -316,7 +316,7 @@
         for (i = 0; i < (1 << MCACHE_SIZE_EXP); i++) {
             method_cache[i].value = NULL;
             Py_INCREF(Py_None);
-            Py_SETREF(method_cache[i].name, Py_None);
+            Py_XSETREF(method_cache[i].name, Py_None);
         }
         /* mark all version tags as invalid */
         PyType_Modified(&PyBaseObject_Type);
@@ -424,7 +424,7 @@
 
     type->tp_name = tp_name;
     Py_INCREF(value);
-    Py_SETREF(((PyHeapTypeObject*)type)->ht_name, value);
+    Py_XSETREF(((PyHeapTypeObject*)type)->ht_name, value);
 
     return 0;
 }
@@ -445,7 +445,7 @@
 
     et = (PyHeapTypeObject*)type;
     Py_INCREF(value);
-    Py_SETREF(et->ht_qualname, value);
+    Py_XSETREF(et->ht_qualname, value);
     return 0;
 }
 
@@ -2124,7 +2124,7 @@
         return -1;
     }
     Py_XINCREF(value);
-    Py_SETREF(*dictptr, value);
+    Py_XSETREF(*dictptr, value);
     return 0;
 }
 
@@ -2903,7 +2903,7 @@
         else
             method_cache_misses++;
 #endif
-        Py_SETREF(method_cache[h].name, name);
+        Py_XSETREF(method_cache[h].name, name);
     }
     return res;
 }
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 8dc2a38..2499a36 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1830,7 +1830,7 @@
         _Py_INCREF_UNICODE_EMPTY();
         if (!unicode_empty)
             return -1;
-        Py_SETREF(*p_unicode, unicode_empty);
+        Py_XSETREF(*p_unicode, unicode_empty);
         return 0;
     }
 
@@ -1838,7 +1838,7 @@
         PyObject *copy = resize_copy(unicode, length);
         if (copy == NULL)
             return -1;
-        Py_SETREF(*p_unicode, copy);
+        Py_XSETREF(*p_unicode, copy);
         return 0;
     }
 
@@ -13547,7 +13547,7 @@
             return -1;
         _PyUnicode_FastCopyCharacters(newbuffer, 0,
                                       writer->buffer, 0, writer->pos);
-        Py_SETREF(writer->buffer, newbuffer);
+        Py_XSETREF(writer->buffer, newbuffer);
     }
     _PyUnicodeWriter_Update(writer);
     return 0;
@@ -15264,7 +15264,7 @@
 
     if (t) {
         Py_INCREF(t);
-        Py_SETREF(*p, t);
+        Py_XSETREF(*p, t);
         return;
     }
 
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 006ad9c..90a8270 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -526,7 +526,7 @@
         goto cleanup;
 
     readline = _PyObject_GetAttrId(stream, &PyId_readline);
-    Py_SETREF(tok->decoding_readline, readline);
+    Py_XSETREF(tok->decoding_readline, readline);
     if (pos > 0) {
         if (PyObject_CallObject(readline, NULL) == NULL) {
             readline = NULL;
diff --git a/Python/_warnings.c b/Python/_warnings.c
index 40f5c8e..2d9d878 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -730,7 +730,7 @@
                     goto handle_error;
                 }
                 else if (!is_true) {
-                    Py_SETREF(*filename, PyUnicode_FromString("__main__"));
+                    Py_XSETREF(*filename, PyUnicode_FromString("__main__"));
                     if (*filename == NULL)
                         goto handle_error;
                 }
diff --git a/Python/ceval.c b/Python/ceval.c
index 7b07475..c83743d 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3236,7 +3236,7 @@
                 Py_INCREF(self);
                 func = PyMethod_GET_FUNCTION(func);
                 Py_INCREF(func);
-                Py_SETREF(*pfunc, self);
+                Py_XSETREF(*pfunc, self);
                 na++;
                 /* n++; */
             } else
@@ -4491,7 +4491,7 @@
     PyThreadState *tstate = PyThreadState_GET();
 
     Py_XINCREF(wrapper);
-    Py_SETREF(tstate->coroutine_wrapper, wrapper);
+    Py_XSETREF(tstate->coroutine_wrapper, wrapper);
 }
 
 PyObject *
@@ -4747,7 +4747,7 @@
             Py_INCREF(self);
             func = PyMethod_GET_FUNCTION(func);
             Py_INCREF(func);
-            Py_SETREF(*pfunc, self);
+            Py_XSETREF(*pfunc, self);
             na++;
             n++;
         } else
diff --git a/Python/compile.c b/Python/compile.c
index 92fea3d..29a2ade 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1756,7 +1756,7 @@
     {
         /* use the class name for name mangling */
         Py_INCREF(s->v.ClassDef.name);
-        Py_SETREF(c->u->u_private, s->v.ClassDef.name);
+        Py_XSETREF(c->u->u_private, s->v.ClassDef.name);
         /* load (global) __name__ ... */
         str = PyUnicode_InternFromString("__name__");
         if (!str || !compiler_nameop(c, str, Load)) {
diff --git a/Python/errors.c b/Python/errors.c
index 47d7c4b..1d6e432 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -311,9 +311,9 @@
         --tstate->recursion_depth;
         /* throw away the old exception and use the recursion error instead */
         Py_INCREF(PyExc_RecursionError);
-        Py_SETREF(*exc, PyExc_RecursionError);
+        Py_XSETREF(*exc, PyExc_RecursionError);
         Py_INCREF(PyExc_RecursionErrorInst);
-        Py_SETREF(*val, PyExc_RecursionErrorInst);
+        Py_XSETREF(*val, PyExc_RecursionErrorInst);
         /* just keeping the old traceback */
         return;
     }
diff --git a/Python/import.c b/Python/import.c
index 22f94f5..0608924 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -884,7 +884,7 @@
         return;
 
     Py_INCREF(newname);
-    Py_SETREF(co->co_filename, newname);
+    Py_XSETREF(co->co_filename, newname);
 
     constants = co->co_consts;
     n = PyTuple_GET_SIZE(constants);
@@ -1330,7 +1330,7 @@
              PyUnicode_CompareWithASCIIString(code->co_name,
                                               remove_frames) == 0)) {
             Py_XINCREF(next);
-            Py_SETREF(*outer_link, next);
+            Py_XSETREF(*outer_link, next);
             prev_link = outer_link;
         }
         else {
diff --git a/Python/peephole.c b/Python/peephole.c
index c33bf1a..2b2e4c4 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -118,7 +118,7 @@
     /* If it's a BUILD_SET, use the PyTuple we just built to create a
       PyFrozenSet, and use that as the constant instead: */
     if (codestr[0] == BUILD_SET) {
-        Py_SETREF(newconst, PyFrozenSet_New(newconst));
+        Py_XSETREF(newconst, PyFrozenSet_New(newconst));
         if (newconst == NULL)
             return 0;
     }
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index c5b4ac1..0c68c54 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -436,7 +436,7 @@
         return -1;
     }
     if (result != Py_None) {
-        Py_SETREF(frame->f_trace, result);
+        Py_XSETREF(frame->f_trace, result);
     }
     else {
         Py_DECREF(result);