diff options
author | Per Bothner <bothner@cygnus.com> | 1999-01-28 16:40:56 +0000 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1999-01-28 08:40:56 -0800 |
commit | f2693f2f85d54240aff46cf84e10f5187e20302c (patch) | |
tree | 1663c1bc1a14923b658bc075038a4c5fa280f5de | |
parent | 81f4eddded16e3cab942e9aae0ba88432256cb0b (diff) | |
download | gcc-f2693f2f85d54240aff46cf84e10f5187e20302c.zip gcc-f2693f2f85d54240aff46cf84e10f5187e20302c.tar.gz gcc-f2693f2f85d54240aff46cf84e10f5187e20302c.tar.bz2 |
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
-rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/check-init.c | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index b2419f8..c969046 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +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> * except.c, java-except.h (expand_resume_after_catch): new diff --git a/gcc/java/check-init.c b/gcc/java/check-init.c index ec3e5ad..5cc6ec8 100644 --- a/gcc/java/check-init.c +++ b/gcc/java/check-init.c @@ -188,13 +188,13 @@ check_bool2_init (code, exp0, exp1, before, when_false, when_true) INTERSECT (before, when_false_0, when_false_1); 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); INTERSECT (when_false, when_false_0, when_false_1); 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); INTERSECT (when_true, when_true_0, when_true_1); @@ -263,12 +263,15 @@ check_bool_init (exp, before, when_false, when_true) case BIT_AND_EXPR: case BIT_IOR_EXPR: + case TRUTH_AND_EXPR: + case TRUTH_OR_EXPR: case EQ_EXPR: check_bool2_init (TREE_CODE (exp), TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1), before, when_false, when_true); return; + case TRUTH_XOR_EXPR: case BIT_XOR_EXPR: case NE_EXPR: /* Just like EQ_EXPR, but switch when_true and when_false. */ @@ -592,6 +595,9 @@ check_init (exp, before) break; case UNARY_PLUS_EXPR: case NEGATE_EXPR: + case TRUTH_AND_EXPR: + case TRUTH_OR_EXPR: + case TRUTH_XOR_EXPR: case TRUTH_NOT_EXPR: case BIT_NOT_EXPR: case CONVERT_EXPR: |