bpo-39573: Add Py_SET_SIZE() function (GH-18400)

Add Py_SET_SIZE() function to set the size of an object.
diff --git a/Include/cpython/objimpl.h b/Include/cpython/objimpl.h
index ebb3e23..8e3c964 100644
--- a/Include/cpython/objimpl.h
+++ b/Include/cpython/objimpl.h
@@ -30,7 +30,7 @@
 _PyObject_INIT_VAR(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size)
 {
     assert(op != NULL);
-    Py_SIZE(op) = size;
+    Py_SET_SIZE(op, size);
     PyObject_INIT((PyObject *)op, typeobj);
     return op;
 }
diff --git a/Include/object.h b/Include/object.h
index eb887f4..68200f7 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -133,6 +133,11 @@
 }
 #define Py_SET_TYPE(ob, type) _Py_SET_TYPE(_PyObject_CAST(ob), type)
 
+static inline void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t refcnt) {
+    ob->ob_size = refcnt;
+}
+#define Py_SET_SIZE(ob, refcnt) _Py_SET_SIZE(_PyVarObject_CAST(ob), refcnt)
+
 
 /*
 Type objects contain a string containing the type name (to help somewhat