diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 821710a7fa3286..5740736c19dda6 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -326,7 +326,7 @@ def test_chr(self): self.assertEqual(chr(0x0010FFFF), "\U0010FFFF") self.assertRaises(ValueError, chr, -1) self.assertRaises(ValueError, chr, 0x00110000) - self.assertRaises((OverflowError, ValueError), chr, 2**32) + self.assertRaises(ValueError, chr, 2**32) def test_cmp(self): self.assertTrue(not hasattr(builtins, "cmp")) diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h index b77b4a1e4b410e..a419028db90f4c 100644 --- a/Python/clinic/bltinmodule.c.h +++ b/Python/clinic/bltinmodule.c.h @@ -247,6 +247,9 @@ builtin_chr(PyObject *module, PyObject *arg) i = _PyLong_AsInt(arg); if (i == -1 && PyErr_Occurred()) { + if (PyErr_ExceptionMatches(PyExc_OverflowError)) { + PyErr_SetString(PyExc_ValueError, "chr() arg not in range(0x110000)"); + } goto exit; } return_value = builtin_chr_impl(module, i);