[Python-checkins] r45355 - in python/trunk: Include/asdl.h Python/compile.c

skip.montanaro python-checkins at python.org
Thu Apr 13 11:48:28 CEST 2006


Author: skip.montanaro
Date: Thu Apr 13 11:48:28 2006
New Revision: 45355

Modified:
   python/trunk/Include/asdl.h
   python/trunk/Python/compile.c
Log:
revert - breaks build of Python/ast.c w/ gcc

Modified: python/trunk/Include/asdl.h
==============================================================================
--- python/trunk/Include/asdl.h	(original)
+++ python/trunk/Include/asdl.h	Thu Apr 13 11:48:28 2006
@@ -19,22 +19,18 @@
 
 typedef struct {
     int size;
-    union {
-        void *elements[1];
-	unsigned int enum_type[1];
-    } elt;
+    void *elements[1];
 } asdl_seq;
 
 asdl_seq *asdl_seq_new(int size, PyArena *arena);
 
-#define asdl_seq_GET(S, I) (S)->elt.elements[(I)]
-#define asdl_seq_GET_ENUM(S, I) (S)->elt.enum_type[(I)]
+#define asdl_seq_GET(S, I) (S)->elements[(I)]
 #define asdl_seq_LEN(S) ((S) == NULL ? 0 : (S)->size)
 #ifdef Py_DEBUG
 #define asdl_seq_SET(S, I, V) { \
         int _asdl_i = (I); \
         assert((S) && _asdl_i < (S)->size); \
-        (S)->elt.elements[_asdl_i] = (V); \
+        (S)->elements[_asdl_i] = (V); \
 }
 #else
 #define asdl_seq_SET(S, I, V) (S)->elements[I] = (V)

Modified: python/trunk/Python/compile.c
==============================================================================
--- python/trunk/Python/compile.c	(original)
+++ python/trunk/Python/compile.c	Thu Apr 13 11:48:28 2006
@@ -3066,8 +3066,10 @@
 	for (i = 1; i < n; i++) {
 		ADDOP(c, DUP_TOP);
 		ADDOP(c, ROT_THREE);
+		/* XXX We're casting a void* to cmpop_ty in the next stmt. */
 		ADDOP_I(c, COMPARE_OP,
-			cmpop((cmpop_ty)asdl_seq_GET_ENUM(e->v.Compare.ops, i - 1)));
+			cmpop((cmpop_ty)( CMPCAST asdl_seq_GET(
+                                                  e->v.Compare.ops, i - 1))));
 		ADDOP_JREL(c, JUMP_IF_FALSE, cleanup);
 		NEXT_BLOCK(c);
 		ADDOP(c, POP_TOP);
@@ -3078,7 +3080,8 @@
 	VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n - 1));
 	ADDOP_I(c, COMPARE_OP,
 		/* XXX We're casting a void* to cmpop_ty in the next stmt. */
-	       cmpop((cmpop_ty)asdl_seq_GET_ENUM(e->v.Compare.ops, n - 1)));
+	       cmpop((cmpop_ty)( CMPCAST asdl_seq_GET(e->v.Compare.ops, 
+                                                       n - 1))));
 	if (n > 1) {
 		basicblock *end = compiler_new_block(c);
 		if (end == NULL)


More information about the Python-checkins mailing list