PyLong_{As, From}VoidPtr:  cleanup, replacing assumptions in comments with
#if/#error constructs.
diff --git a/Objects/longobject.c b/Objects/longobject.c
index be9430a..048b8e5 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -508,18 +508,22 @@
 PyObject *
 PyLong_FromVoidPtr(void *p)
 {
-#if SIZEOF_VOID_P == SIZEOF_LONG
+#if SIZEOF_VOID_P <= SIZEOF_LONG
 	return PyInt_FromLong((long)p);
 #else
-	/* optimize null pointers */
-	if ( p == NULL )
-		return PyInt_FromLong(0);
 
-	/* we can assume that HAVE_LONG_LONG is true. if not, then the
-	   configuration process should have bailed (having big pointers
-	   without long longs seems non-sensical) */
+#ifndef HAVE_LONG_LONG
+#   error "PyLong_FromVoidPtr: sizeof(void*) > sizeof(long), but no long long"
+#endif
+#if SIZEOF_LONG_LONG < SIZEOF_VOID_P
+#   error "PyLong_FromVoidPtr: sizeof(LONG_LONG) < sizeof(void*)"
+#endif
+	/* optimize null pointers */
+	if (p == NULL)
+		return PyInt_FromLong(0);
 	return PyLong_FromLongLong((LONG_LONG)p);
-#endif /* SIZEOF_VOID_P == SIZEOF_LONG */
+
+#endif /* SIZEOF_VOID_P <= SIZEOF_LONG */
 }
 
 /* Get a C pointer from a long object (or an int object in some cases) */
@@ -531,25 +535,29 @@
 	   then the PyLong_AsLong*() functions will raise the exception:
 	   PyExc_SystemError, "bad argument to internal function"
 	*/
-
-#if SIZEOF_VOID_P == SIZEOF_LONG
+#if SIZEOF_VOID_P <= SIZEOF_LONG
 	long x;
 
-	if ( PyInt_Check(vv) )
+	if (PyInt_Check(vv))
 		x = PyInt_AS_LONG(vv);
 	else
 		x = PyLong_AsLong(vv);
 #else
-	/* we can assume that HAVE_LONG_LONG is true. if not, then the
-	   configuration process should have bailed (having big pointers
-	   without long longs seems non-sensical) */
+
+#ifndef HAVE_LONG_LONG
+#   error "PyLong_AsVoidPtr: sizeof(void*) > sizeof(long), but no long long"
+#endif
+#if SIZEOF_LONG_LONG < SIZEOF_VOID_P
+#   error "PyLong_AsVoidPtr: sizeof(LONG_LONG) < sizeof(void*)"
+#endif
 	LONG_LONG x;
 
-	if ( PyInt_Check(vv) )
+	if (PyInt_Check(vv))
 		x = PyInt_AS_LONG(vv);
 	else
 		x = PyLong_AsLongLong(vv);
-#endif /* SIZEOF_VOID_P == SIZEOF_LONG */
+
+#endif /* SIZEOF_VOID_P <= SIZEOF_LONG */
 
 	if (x == -1 && PyErr_Occurred())
 		return NULL;