#3479: unichr(2**32) used to return u'\x00'.
The argument was fetched in a long, but PyUnicode_FromOrdinal takes an int.

(why doesn't gcc issue a truncation warning in this case?)
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index e18eb2a..4a1ffd5 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -394,9 +394,9 @@
 static PyObject *
 builtin_unichr(PyObject *self, PyObject *args)
 {
-	long x;
+	int x;
 
-	if (!PyArg_ParseTuple(args, "l:unichr", &x))
+	if (!PyArg_ParseTuple(args, "i:unichr", &x))
 		return NULL;
 
 	return PyUnicode_FromOrdinal(x);