Patch #1550786: ellipsis literal.
diff --git a/Python/compile.c b/Python/compile.c
index ac82b84..40ac2d7 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -2746,6 +2746,8 @@
 expr_constant(expr_ty e)
 {
 	switch (e->kind) {
+	case Ellipsis_kind:
+		return 1;
 	case Num_kind:
 		return PyObject_IsTrue(e->v.Num.n);
 	case Str_kind:
@@ -2977,6 +2979,9 @@
 	case Str_kind:
 		ADDOP_O(c, LOAD_CONST, e->v.Str.s, consts);
 		break;
+	case Ellipsis_kind:
+		ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
+		break;
 	/* The following exprs can be assignment targets. */
 	case Attribute_kind:
 		if (e->v.Attribute.ctx != AugStore)
@@ -3255,9 +3260,6 @@
 			    expr_context_ty ctx)
 {
 	switch (s->kind) {
-	case Ellipsis_kind:
-		ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
-		break;
 	case Slice_kind:
 		return compiler_slice(c, s, ctx);
 	case Index_kind:
@@ -3284,12 +3286,6 @@
 			VISIT(c, expr, s->v.Index.value);
 		}
 		break;
-	case Ellipsis_kind:
-		kindname = "ellipsis";
-		if (ctx != AugStore) {
-			ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
-		}
-		break;
 	case Slice_kind:
 		kindname = "slice";
 		if (!s->v.Slice.step)