Patch #494783: Rename cmp_op enumerators.
diff --git a/Include/opcode.h b/Include/opcode.h
index 9508499..df086ef 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -142,9 +142,9 @@
 /* Support for opargs more than 16 bits long */
 #define EXTENDED_ARG  143
 
-/* Comparison operator codes (argument to COMPARE_OP) */
-enum cmp_op {LT=Py_LT, LE=Py_LE, EQ=Py_EQ, NE=Py_NE, GT=Py_GT, GE=Py_GE,
-	     IN, NOT_IN, IS, IS_NOT, EXC_MATCH, BAD};
+
+enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE, PyCmp_GT=Py_GT, PyCmp_GE=Py_GE,
+	     PyCmp_IN, PyCmp_NOT_IN, PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD};
 
 #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
 
diff --git a/Misc/ACKS b/Misc/ACKS
index e5d884d..ead7ec8 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -85,6 +85,7 @@
 Vadim Chugunov
 David Cinege
 Mike Clarkson
+Brad Clements
 Steve Clift
 Josh Cogliati
 Dave Cole
diff --git a/Misc/NEWS b/Misc/NEWS
index 9ef6912..a0e3572 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@
 
 C API
 
+- The enumerators of cmp_op have been renamed to use the prefix PyCmp_.
+
 - An old #define of ANY as void has been removed from pyport.h.  This
   hasn't been used since Python's pre-ANSI days, and the #define has
   been marked as obsolete since then.  SF bug 495548 says it created
diff --git a/Python/ceval.c b/Python/ceval.c
index e7ca82b..c59f31c 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1785,14 +1785,14 @@
 				a = PyInt_AS_LONG(v);
 				b = PyInt_AS_LONG(w);
 				switch (oparg) {
-				case LT: res = a <  b; break;
-				case LE: res = a <= b; break;
-				case EQ: res = a == b; break;
-				case NE: res = a != b; break;
-				case GT: res = a >  b; break;
-				case GE: res = a >= b; break;
-				case IS: res = v == w; break;
-				case IS_NOT: res = v != w; break;
+				case PyCmp_LT: res = a <  b; break;
+				case PyCmp_LE: res = a <= b; break;
+				case PyCmp_EQ: res = a == b; break;
+				case PyCmp_NE: res = a != b; break;
+				case PyCmp_GT: res = a >  b; break;
+				case PyCmp_GE: res = a >= b; break;
+				case PyCmp_IS: res = v == w; break;
+				case PyCmp_IS_NOT: res = v != w; break;
 				default: goto slow_compare;
 				}
 				x = res ? Py_True : Py_False;
@@ -2986,6 +2986,10 @@
 			result = 1;
 			cf->cf_flags |= compilerflags;
 		}
+		if (codeflags & CO_GENERATOR_ALLOWED) {
+			result = 1;
+			cf->cf_flags |= CO_GENERATOR_ALLOWED;
+		}
 	}
 	return result;
 }
@@ -3470,21 +3474,21 @@
 {
 	int res = 0;
 	switch (op) {
-	case IS:
-	case IS_NOT:
+	case PyCmp_IS:
+	case PyCmp_IS_NOT:
 		res = (v == w);
-		if (op == (int) IS_NOT)
+		if (op == (int) PyCmp_IS_NOT)
 			res = !res;
 		break;
-	case IN:
-	case NOT_IN:
+	case PyCmp_IN:
+	case PyCmp_NOT_IN:
 		res = PySequence_Contains(w, v);
 		if (res < 0)
 			return NULL;
-		if (op == (int) NOT_IN)
+		if (op == (int) PyCmp_NOT_IN)
 			res = !res;
 		break;
-	case EXC_MATCH:
+	case PyCmp_EXC_MATCH:
 		res = PyErr_GivenExceptionMatches(v, w);
 		break;
 	default:
diff --git a/Python/compile.c b/Python/compile.c
index 4421284..ca3a47d 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -702,7 +702,7 @@
 {
 	/*fprintf(stderr, "%3d: %3d\n", c->c_nexti, byte);*/
 	assert(byte >= 0 && byte <= 255);
-	assert(c->c_code);
+	assert(c->c_code != 0);
 	if (com_check_size(&c->c_code, c->c_nexti)) {
 		c->c_errors++;
 		return;
@@ -2138,26 +2138,26 @@
 	if (NCH(n) == 1) {
 		n = CHILD(n, 0);
 		switch (TYPE(n)) {
-		case LESS:	return LT;
-		case GREATER:	return GT;
+		case LESS:	return PyCmp_LT;
+		case GREATER:	return PyCmp_GT;
 		case EQEQUAL:			/* == */
-		case EQUAL:	return EQ;
-		case LESSEQUAL:	return LE;
-		case GREATEREQUAL: return GE;
-		case NOTEQUAL:	return NE;	/* <> or != */
-		case NAME:	if (strcmp(STR(n), "in") == 0) return IN;
-				if (strcmp(STR(n), "is") == 0) return IS;
+		case EQUAL:	return PyCmp_EQ;
+		case LESSEQUAL:	return PyCmp_LE;
+		case GREATEREQUAL: return PyCmp_GE;
+		case NOTEQUAL:	return PyCmp_NE;	/* <> or != */
+		case NAME:	if (strcmp(STR(n), "in") == 0) return PyCmp_IN;
+				if (strcmp(STR(n), "is") == 0) return PyCmp_IS;
 		}
 	}
 	else if (NCH(n) == 2) {
 		switch (TYPE(CHILD(n, 0))) {
 		case NAME:	if (strcmp(STR(CHILD(n, 1)), "in") == 0)
-					return NOT_IN;
+					return PyCmp_NOT_IN;
 				if (strcmp(STR(CHILD(n, 0)), "is") == 0)
-					return IS_NOT;
+					return PyCmp_IS_NOT;
 		}
 	}
-	return BAD;
+	return PyCmp_BAD;
 }
 
 static void
@@ -2214,7 +2214,7 @@
 			com_addbyte(c, ROT_THREE);
 		}
 		op = cmp_type(CHILD(n, i-1));
-		if (op == BAD) {
+		if (op == PyCmp_BAD) {
 			com_error(c, PyExc_SystemError,
 				  "com_comparison: unknown comparison op");
 		}
@@ -3247,7 +3247,7 @@
 			com_addbyte(c, DUP_TOP);
 			com_push(c, 1);
 			com_node(c, CHILD(ch, 1));
-			com_addoparg(c, COMPARE_OP, EXC_MATCH);
+			com_addoparg(c, COMPARE_OP, PyCmp_EXC_MATCH);
 			com_pop(c, 1);
 			com_addfwref(c, JUMP_IF_FALSE, &except_anchor);
 			com_addbyte(c, POP_TOP);