Support __complex__ method on instances, for complex() conversion.

Keep gcc -Wall happy.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 142a4f7..6a81c91 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -308,6 +308,28 @@
 			   "complex() argument can't be converted to complex");
 		return NULL;
 	}
+	/* XXX Hack to support classes with __complex__ method */
+	if (is_instanceobject(r)) {
+		static object *complexstr;
+		object *f;
+		if (complexstr == NULL) {
+			complexstr = newstringobject("__complex__");
+			if (complexstr == NULL)
+				return NULL;
+		}
+		f = getattro(r, complexstr);
+		if (f == NULL)
+			err_clear();
+		else {
+			object *args = mkvalue("()");
+			if (args == NULL)
+				return NULL;
+			r = call_object(f, args);
+			DECREF(args);
+			if (r == NULL)
+				return NULL;
+		}
+	}
 	if (is_complexobject(r))
 		cr = ((complexobject*)r)->cval;
 	else {
@@ -632,7 +654,7 @@
 
 	/* XXX Special case map(None, single_list) could be more efficient */
 	for (i = 0; ; ++i) {
-		object *alist, *item, *value;
+		object *alist, *item=NULL, *value;
 		int any = 0;
 
 		if (func == None && n == 1)