casting nastiness to make C++ compiler happy

This commit is contained in:
Anthony Baxter 2006-04-13 01:23:28 +00:00
parent 3109d62da6
commit d691f1a35f
1 changed files with 10 additions and 2 deletions

View File

@ -3058,12 +3058,18 @@ compiler_compare(struct compiler *c, expr_ty e)
VISIT(c, expr, VISIT(c, expr,
(expr_ty)asdl_seq_GET(e->v.Compare.comparators, 0)); (expr_ty)asdl_seq_GET(e->v.Compare.comparators, 0));
} }
#ifdef __cplusplus
#define CMPCAST (intptr_t)
#else
#define CMPCAST
#endif
for (i = 1; i < n; i++) { for (i = 1; i < n; i++) {
ADDOP(c, DUP_TOP); ADDOP(c, DUP_TOP);
ADDOP(c, ROT_THREE); ADDOP(c, ROT_THREE);
/* XXX We're casting a void* to cmpop_ty in the next stmt. */ /* XXX We're casting a void* to cmpop_ty in the next stmt. */
ADDOP_I(c, COMPARE_OP, ADDOP_I(c, COMPARE_OP,
cmpop((cmpop_ty)asdl_seq_GET(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); ADDOP_JREL(c, JUMP_IF_FALSE, cleanup);
NEXT_BLOCK(c); NEXT_BLOCK(c);
ADDOP(c, POP_TOP); ADDOP(c, POP_TOP);
@ -3074,7 +3080,8 @@ compiler_compare(struct compiler *c, expr_ty e)
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n - 1)); VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n - 1));
ADDOP_I(c, COMPARE_OP, ADDOP_I(c, COMPARE_OP,
/* XXX We're casting a void* to cmpop_ty in the next stmt. */ /* XXX We're casting a void* to cmpop_ty in the next stmt. */
cmpop((cmpop_ty)asdl_seq_GET(e->v.Compare.ops, n - 1))); cmpop((cmpop_ty)( CMPCAST asdl_seq_GET(e->v.Compare.ops,
n - 1))));
if (n > 1) { if (n > 1) {
basicblock *end = compiler_new_block(c); basicblock *end = compiler_new_block(c);
if (end == NULL) if (end == NULL)
@ -3087,6 +3094,7 @@ compiler_compare(struct compiler *c, expr_ty e)
} }
return 1; return 1;
} }
#undef CMPCAST
static int static int
compiler_call(struct compiler *c, expr_ty e) compiler_call(struct compiler *c, expr_ty e)