Commit f2693f2f by Per Bothner Committed by Per Bothner

check-init.c (check_bool2_init, [...]): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.

�
	* check-init.c (check_bool2_init, check_bool_init, check_init):
	Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
	* jcf-write.c (generate_bytecode_insns):  Likewise.

From-SVN: r24900
parent 81f4eddd
Thu Jan 28 14:45:39 1999 Per Bothner <bothner@cygnus.com>
* check-init.c (check_bool2_init, check_bool_init, check_init):
Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
* jcf-write.c (generate_bytecode_insns): Likewise.
Mon Jan 25 17:39:19 1999 Andrew Haley <aph@cygnus.com> Mon Jan 25 17:39:19 1999 Andrew Haley <aph@cygnus.com>
* except.c, java-except.h (expand_resume_after_catch): new * except.c, java-except.h (expand_resume_after_catch): new
......
...@@ -188,13 +188,13 @@ check_bool2_init (code, exp0, exp1, before, when_false, when_true) ...@@ -188,13 +188,13 @@ check_bool2_init (code, exp0, exp1, before, when_false, when_true)
INTERSECT (before, when_false_0, when_false_1); INTERSECT (before, when_false_0, when_false_1);
UNION (when_false, when_false, before); UNION (when_false, when_false, before);
} }
else if (code == BIT_AND_EXPR) else if (code == BIT_AND_EXPR || code == TRUTH_AND_EXPR)
{ {
UNION (when_true, when_true_0, when_true_1); UNION (when_true, when_true_0, when_true_1);
INTERSECT (when_false, when_false_0, when_false_1); INTERSECT (when_false, when_false_0, when_false_1);
UNION (when_false, when_false, before); UNION (when_false, when_false, before);
} }
else /* if (code == BIT_IOR_EXPR) */ else /* if (code == BIT_IOR_EXPR || code == TRUTH_OR_EXPR) */
{ {
UNION (when_false, when_false_0, when_false_1); UNION (when_false, when_false_0, when_false_1);
INTERSECT (when_true, when_true_0, when_true_1); INTERSECT (when_true, when_true_0, when_true_1);
...@@ -263,12 +263,15 @@ check_bool_init (exp, before, when_false, when_true) ...@@ -263,12 +263,15 @@ check_bool_init (exp, before, when_false, when_true)
case BIT_AND_EXPR: case BIT_AND_EXPR:
case BIT_IOR_EXPR: case BIT_IOR_EXPR:
case TRUTH_AND_EXPR:
case TRUTH_OR_EXPR:
case EQ_EXPR: case EQ_EXPR:
check_bool2_init (TREE_CODE (exp), check_bool2_init (TREE_CODE (exp),
TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1), TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1),
before, when_false, when_true); before, when_false, when_true);
return; return;
case TRUTH_XOR_EXPR:
case BIT_XOR_EXPR: case BIT_XOR_EXPR:
case NE_EXPR: case NE_EXPR:
/* Just like EQ_EXPR, but switch when_true and when_false. */ /* Just like EQ_EXPR, but switch when_true and when_false. */
...@@ -592,6 +595,9 @@ check_init (exp, before) ...@@ -592,6 +595,9 @@ check_init (exp, before)
break; break;
case UNARY_PLUS_EXPR: case UNARY_PLUS_EXPR:
case NEGATE_EXPR: case NEGATE_EXPR:
case TRUTH_AND_EXPR:
case TRUTH_OR_EXPR:
case TRUTH_XOR_EXPR:
case TRUTH_NOT_EXPR: case TRUTH_NOT_EXPR:
case BIT_NOT_EXPR: case BIT_NOT_EXPR:
case CONVERT_EXPR: case CONVERT_EXPR:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment