Use Tim's suggestion to fix

[ 708901 ] Lineno calculation sometimes broken

A one line patch to compile.c and a rather-more-than-one-line patch
to test_dis.  Hey ho.

Possibly a backport candidate -- tho' lnotab is less used in 2.2...
diff --git a/Python/compile.c b/Python/compile.c
index 57f0edb..a3f48fc 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -3366,7 +3366,7 @@
 	com_node(c, CHILD(n, 3));
 	com_addbyte(c, GET_ITER);
 	c->c_begin = c->c_nexti;
-	com_set_lineno(c, n->n_lineno);
+	com_set_lineno(c, c->c_last_line);
 	com_addfwref(c, FOR_ITER, &anchor);
 	com_push(c, 1);
 	com_assign(c, CHILD(n, 1), OP_ASSIGN, NULL);