From 47ee6837900a6f7b22f13da0db83cd5923ff9fe8 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 7 Dec 1996 17:51:45 -0500 Subject: [PATCH] (build_binary_op): Likewise. (build_conditional_expr): op1 now always nonnull. From-SVN: r13234 --- gcc/c-typeck.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index fa647dbce60..a5a5b009b98 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -2107,7 +2107,7 @@ build_binary_op (code, orig_op0, orig_op1, convert_p) case RSHIFT_EXPR: if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE) { - if (TREE_CODE (op1) == INTEGER_CST) + if (TREE_CODE (op1) == INTEGER_CST && skip_evaluation == 0) { if (tree_int_cst_sgn (op1) < 0) warning ("right shift count is negative"); @@ -2139,7 +2139,7 @@ build_binary_op (code, orig_op0, orig_op1, convert_p) case LSHIFT_EXPR: if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE) { - if (TREE_CODE (op1) == INTEGER_CST) + if (TREE_CODE (op1) == INTEGER_CST && skip_evaluation == 0) { if (tree_int_cst_sgn (op1) < 0) warning ("left shift count is negative"); @@ -2167,7 +2167,7 @@ build_binary_op (code, orig_op0, orig_op1, convert_p) case LROTATE_EXPR: if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE) { - if (TREE_CODE (op1) == INTEGER_CST) + if (TREE_CODE (op1) == INTEGER_CST && skip_evaluation == 0) { if (tree_int_cst_sgn (op1) < 0) warning ("shift count is negative"); @@ -2469,7 +2469,7 @@ build_binary_op (code, orig_op0, orig_op1, convert_p) converted = 1; resultcode = xresultcode; - if (warn_sign_compare) + if (warn_sign_compare && skip_evaluation == 0) { int op0_signed = ! TREE_UNSIGNED (TREE_TYPE (orig_op0)); int op1_signed = ! TREE_UNSIGNED (TREE_TYPE (orig_op1)); @@ -3377,15 +3377,6 @@ build_conditional_expr (ifexp, op1, op2) register tree result_type = NULL; tree orig_op1 = op1, orig_op2 = op2; - /* If second operand is omitted, it is the same as the first one; - make sure it is calculated only once. */ - if (op1 == 0) - { - if (pedantic) - pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); - ifexp = orig_op1 = op1 = save_expr (ifexp); - } - ifexp = truthvalue_conversion (default_conversion (ifexp)); #if 0 /* Produces wrong result if within sizeof. */ -- 2.30.2