PyString_AsString is permissive and accepts unicode strings.

Replace it with PyUnicode_AsString when the argument is known to be a str.
diff --git a/Objects/setobject.c b/Objects/setobject.c
index f6ea441..d85a28d 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -2303,7 +2303,7 @@
 	/* Exercise direct iteration */
 	i = 0, count = 0;
 	while (_PySet_Next((PyObject *)dup, &i, &x)) {
-		s = PyString_AsString(x);
+		s = PyUnicode_AsString(x);
 		assert(s && (s[0] == 'a' || s[0] == 'b' || s[0] == 'c'));
 		count++;
 	}
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index ae2a977..d341436 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3273,7 +3273,7 @@
 	if (!result)
 		return NULL;
 
-	buf = PyString_AsString(result);
+	buf = PyUnicode_AsString(result);
 	if (!buf) {
 		Py_DECREF(result);
 		return NULL;
@@ -3284,7 +3284,7 @@
 		PyErr_BadInternalCall();
 		return NULL;
 	}
-	llen = PyString_Size(result);
+	llen = PyUnicode_GetSize(result);
 	if (llen > INT_MAX) {
 		PyErr_SetString(PyExc_ValueError,
 				"string too large in _PyString_FormatLong");