_PyUnicode_CheckConsistency() also checks maxchar maximum value,
not only its minimum value
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 18780ea..9c1705d 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -392,15 +392,21 @@
                 maxchar = ch;
         }
         if (kind == PyUnicode_1BYTE_KIND) {
-            if (ascii->state.ascii == 0)
+            if (ascii->state.ascii == 0) {
                 assert(maxchar >= 128);
+                assert(maxchar <= 255);
+            }
             else
                 assert(maxchar < 128);
         }
-        else if (kind == PyUnicode_2BYTE_KIND)
+        else if (kind == PyUnicode_2BYTE_KIND) {
             assert(maxchar >= 0x100);
-        else
+            assert(maxchar <= 0xFFFF);
+        }
+        else {
             assert(maxchar >= 0x10000);
+            assert(maxchar <= 0x10FFFF);
+        }
     }
     if (check_content && !unicode_is_singleton(op))
         assert(ascii->hash == -1);