Fix build on FreeBSD gcc.
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index bbe8a19..f8d1207 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -405,11 +405,11 @@
    obj is not of float, int or long type, Py_NotImplemented is incref'ed,
    stored in obj, and returned from the function invoking this macro.
 */
-#define CONVERT_TO_DOUBLE(obj, dbl)			\
-	if (PyFloat_Check(obj))				\
-		dbl = PyFloat_AS_DOUBLE(obj);		\
-	else if (convert_to_double(&(obj), &(dbl)) < 0)	\
-		return obj;
+#define CONVERT_TO_DOUBLE(obj, dbl)					\
+	if (PyFloat_Check(obj))						\
+		dbl = PyFloat_AS_DOUBLE(obj);				\
+	else if (convert_to_double((PyObject **)&(obj), &(dbl)) < 0)	\
+		return (PyObject *)(obj);
 
 static int
 convert_to_double(PyObject **v, double *dbl)
@@ -1212,7 +1212,7 @@
 	int i, exp, n;
 	char *conv_str;
 
-	CONVERT_TO_DOUBLE(((PyObject *)v), x);
+	CONVERT_TO_DOUBLE(v, x);
 	if (!Py_IS_FINITE(x))
 		return PyObject_Repr((PyObject *)v);
 	fr = frexp(x, &exp);