diff options
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index f8085dc..cb693d6 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3391,17 +3391,17 @@ static int twoval_comparison_p (tree arg, tree *cval1, tree *cval2, int *save_p) { enum tree_code code = TREE_CODE (arg); - enum tree_code_class class = TREE_CODE_CLASS (code); + enum tree_code_class tclass = TREE_CODE_CLASS (code); /* We can handle some of the tcc_expression cases here. */ - if (class == tcc_expression && code == TRUTH_NOT_EXPR) - class = tcc_unary; - else if (class == tcc_expression + if (tclass == tcc_expression && code == TRUTH_NOT_EXPR) + tclass = tcc_unary; + else if (tclass == tcc_expression && (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR || code == COMPOUND_EXPR)) - class = tcc_binary; + tclass = tcc_binary; - else if (class == tcc_expression && code == SAVE_EXPR + else if (tclass == tcc_expression && code == SAVE_EXPR && ! TREE_SIDE_EFFECTS (TREE_OPERAND (arg, 0))) { /* If we've already found a CVAL1 or CVAL2, this expression is @@ -3409,11 +3409,11 @@ twoval_comparison_p (tree arg, tree *cval1, tree *cval2, int *save_p) if (*cval1 || *cval2) return 0; - class = tcc_unary; + tclass = tcc_unary; *save_p = 1; } - switch (class) + switch (tclass) { case tcc_unary: return twoval_comparison_p (TREE_OPERAND (arg, 0), cval1, cval2, save_p); @@ -3484,16 +3484,16 @@ eval_subst (tree arg, tree old0, tree new0, tree old1, tree new1) { tree type = TREE_TYPE (arg); enum tree_code code = TREE_CODE (arg); - enum tree_code_class class = TREE_CODE_CLASS (code); + enum tree_code_class tclass = TREE_CODE_CLASS (code); /* We can handle some of the tcc_expression cases here. */ - if (class == tcc_expression && code == TRUTH_NOT_EXPR) - class = tcc_unary; - else if (class == tcc_expression + if (tclass == tcc_expression && code == TRUTH_NOT_EXPR) + tclass = tcc_unary; + else if (tclass == tcc_expression && (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR)) - class = tcc_binary; + tclass = tcc_binary; - switch (class) + switch (tclass) { case tcc_unary: return fold_build1 (code, type, |