Mercurial > cpython-lru_cache-weakref
comparison Python/compile.c @ 37679:58640983fd66 legacy-trunk
Use union to discriminate pointer types from enum/int types.
| author | Skip Montanaro <skip@pobox.com> |
|---|---|
| date | Thu, 13 Apr 2006 09:37:01 +0000 |
| parents | 8c998c760191 |
| children | fe88e01ff6de |
comparison
equal
deleted
inserted
replaced
| 37678:30d6b9eaf02d | 37679:58640983fd66 |
|---|---|
| 3064 #define CMPCAST | 3064 #define CMPCAST |
| 3065 #endif | 3065 #endif |
| 3066 for (i = 1; i < n; i++) { | 3066 for (i = 1; i < n; i++) { |
| 3067 ADDOP(c, DUP_TOP); | 3067 ADDOP(c, DUP_TOP); |
| 3068 ADDOP(c, ROT_THREE); | 3068 ADDOP(c, ROT_THREE); |
| 3069 /* XXX We're casting a void* to cmpop_ty in the next stmt. */ | |
| 3070 ADDOP_I(c, COMPARE_OP, | 3069 ADDOP_I(c, COMPARE_OP, |
| 3071 cmpop((cmpop_ty)( CMPCAST asdl_seq_GET( | 3070 cmpop((cmpop_ty)asdl_seq_GET_ENUM(e->v.Compare.ops, i - 1))); |
| 3072 e->v.Compare.ops, i - 1)))); | |
| 3073 ADDOP_JREL(c, JUMP_IF_FALSE, cleanup); | 3071 ADDOP_JREL(c, JUMP_IF_FALSE, cleanup); |
| 3074 NEXT_BLOCK(c); | 3072 NEXT_BLOCK(c); |
| 3075 ADDOP(c, POP_TOP); | 3073 ADDOP(c, POP_TOP); |
| 3076 if (i < (n - 1)) | 3074 if (i < (n - 1)) |
| 3077 VISIT(c, expr, | 3075 VISIT(c, expr, |
| 3078 (expr_ty)asdl_seq_GET(e->v.Compare.comparators, i)); | 3076 (expr_ty)asdl_seq_GET(e->v.Compare.comparators, i)); |
| 3079 } | 3077 } |
| 3080 VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n - 1)); | 3078 VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n - 1)); |
| 3081 ADDOP_I(c, COMPARE_OP, | 3079 ADDOP_I(c, COMPARE_OP, |
| 3082 /* XXX We're casting a void* to cmpop_ty in the next stmt. */ | 3080 /* XXX We're casting a void* to cmpop_ty in the next stmt. */ |
| 3083 cmpop((cmpop_ty)( CMPCAST asdl_seq_GET(e->v.Compare.ops, | 3081 cmpop((cmpop_ty)asdl_seq_GET_ENUM(e->v.Compare.ops, n - 1))); |
| 3084 n - 1)))); | |
| 3085 if (n > 1) { | 3082 if (n > 1) { |
| 3086 basicblock *end = compiler_new_block(c); | 3083 basicblock *end = compiler_new_block(c); |
| 3087 if (end == NULL) | 3084 if (end == NULL) |
| 3088 return 0; | 3085 return 0; |
| 3089 ADDOP_JREL(c, JUMP_FORWARD, end); | 3086 ADDOP_JREL(c, JUMP_FORWARD, end); |
