@@ -5386,15 +5386,12 @@ codegen_slice(compiler *c, expr_ty s)
53865386#define IS_UNARY_SUB_EXPR (N ) \
53875387 (IS_UNARY_EXPR(N) && UNARY_EXPR_OP(N) == USub)
53885388
5389- #define IS_MATCH_NUMERIC_UNARY_CONST_EXPR (N ) \
5389+ #define IS_NUMERIC_UNARY_CONST_EXPR (N ) \
53905390 (IS_UNARY_SUB_EXPR(N) && IS_NUMERIC_CONST_EXPR(UNARY_EXPR_OPERAND(N)))
53915391
5392- #define IS_MATCH_COMPLEX_UNARY_CONST_EXPR (N ) \
5392+ #define IS_COMPLEX_UNARY_CONST_EXPR (N ) \
53935393 (IS_UNARY_SUB_EXPR(N) && IS_COMPLEX_CONST_EXPR(UNARY_EXPR_OPERAND(N)))
53945394
5395- #define IS_MATCH_NUMERIC_OR_COMPLEX_UNARY_CONST_EXPR (N ) \
5396- (IS_MATCH_NUMERIC_UNARY_CONST_EXPR(N) || IS_MATCH_COMPLEX_UNARY_CONST_EXPR(N))
5397-
53985395#define BINARY_EXPR (N ) \
53995396 ((N)->v.BinOp)
54005397
@@ -5416,10 +5413,13 @@ codegen_slice(compiler *c, expr_ty s)
54165413#define IS_BINARY_SUB_EXPR (N ) \
54175414 (IS_BINARY_EXPR(N) && BINARY_EXPR_OP(N) == Sub)
54185415
5416+ #define IS_MATCH_NUMERIC_OR_COMPLEX_UNARY_CONST_EXPR (N ) \
5417+ (IS_NUMERIC_UNARY_CONST_EXPR(N) || IS_COMPLEX_UNARY_CONST_EXPR(N))
5418+
54195419#define IS_MATCH_COMPLEX_BINARY_CONST_EXPR (N ) \
54205420 ( \
54215421 (IS_BINARY_ADD_EXPR(N) || IS_BINARY_SUB_EXPR(N)) \
5422- && (IS_MATCH_NUMERIC_UNARY_CONST_EXPR (BINARY_EXPR_LEFT(N)) || IS_CONST_EXPR(BINARY_EXPR_LEFT(N))) \
5422+ && (IS_NUMERIC_UNARY_CONST_EXPR (BINARY_EXPR_LEFT(N)) || IS_CONST_EXPR(BINARY_EXPR_LEFT(N))) \
54235423 && IS_COMPLEX_CONST_EXPR(BINARY_EXPR_RIGHT(N)) \
54245424 )
54255425
@@ -5451,8 +5451,7 @@ fold_const_binary_complex_expr(expr_ty e)
54515451{
54525452 assert (IS_MATCH_COMPLEX_BINARY_CONST_EXPR (e ));
54535453 expr_ty left_expr = BINARY_EXPR_LEFT (e );
5454- if (IS_UNARY_EXPR (left_expr )) {
5455- assert (IS_MATCH_NUMERIC_UNARY_CONST_EXPR (left_expr ));
5454+ if (IS_NUMERIC_UNARY_CONST_EXPR (left_expr )) {
54565455 RETURN_IF_ERROR (fold_const_unary_or_complex_expr (left_expr ));
54575456 }
54585457 assert (IS_CONST_EXPR (BINARY_EXPR_LEFT (e )));
0 commit comments