And put back a little code duplication, in the form of asserts.
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 60c9fcf..4381d03 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -3168,6 +3168,7 @@
if (classify_two_utcoffsets((PyObject *)self, &offset1, &n1,
other, &offset2, &n2) < 0)
return NULL;
+ assert(n1 != OFFSET_UNKNOWN && n2 != OFFSET_UNKNOWN);
/* If they're both naive, or both aware and have the same offsets,
* we get off cheap. Note that if they're both naive, offset1 ==
* offset2 == 0 at this point.
@@ -3681,6 +3682,7 @@
if (classify_two_utcoffsets((PyObject *)self, &offset1, &n1,
other, &offset2, &n2) < 0)
return NULL;
+ assert(n1 != OFFSET_UNKNOWN && n2 != OFFSET_UNKNOWN);
/* If they're both naive, or both aware and have the same offsets,
* we get off cheap. Note that if they're both naive, offset1 ==
* offset2 == 0 at this point.
@@ -4619,6 +4621,7 @@
if (classify_two_utcoffsets(left, &offset1, &n1,
right, &offset2, &n2) < 0)
return NULL;
+ assert(n1 != OFFSET_UNKNOWN && n2 != OFFSET_UNKNOWN);
if (n1 != n2) {
PyErr_SetString(PyExc_TypeError,
"can't subtract offset-naive and "