aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>2001-12-03 17:24:59 -0800
committerPer Bothner <bothner@gcc.gnu.org>2001-12-03 17:24:59 -0800
commit87d4ad08041d060b51489767a61c6700119d6e8c (patch)
tree714b43a3670e95d3e458fdea069dbdc9db4488e3 /gcc/java
parentaedcdb655dd5d6444caca3e1aa2a4786c09ceb8c (diff)
downloadgcc-87d4ad08041d060b51489767a61c6700119d6e8c.zip
gcc-87d4ad08041d060b51489767a61c6700119d6e8c.tar.gz
gcc-87d4ad08041d060b51489767a61c6700119d6e8c.tar.bz2
parse.y (patch_binop): Minor constant folding.
* parse.y (patch_binop): Minor constant folding. * parse.y (build_current_thisn): Shorter 'buffer'. From-SVN: r47588
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/parse.y10
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index ca9284c..ae85b1a1 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,5 +1,11 @@
2001-12-03 Per Bothner <per@bothner.com>
+ * parse.y (patch_binop): Minor constant folding.
+
+ * parse.y (build_current_thisn): Shorter 'buffer'.
+
+2001-12-03 Per Bothner <per@bothner.com>
+
* decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
* jcf-write.c (generate_bytecode_insns): Remove support for
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 09d5cd6..608ec91 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -8619,7 +8619,7 @@ build_current_thisn (type)
static int saved_type_i = 0;
static int initialized_p;
tree decl;
- char buffer [80];
+ char buffer [24];
int i = 0;
/* Register SAVED_THISN and SAVED_TYPE with the garbage collector. */
@@ -13770,6 +13770,14 @@ patch_binop (node, wfl_op1, wfl_op2)
error_found = 1;
break;
}
+ else if (integer_zerop (op1))
+ {
+ return code == TRUTH_ANDIF_EXPR ? op1 : op2;
+ }
+ else if (integer_onep (op1))
+ {
+ return code == TRUTH_ANDIF_EXPR ? op2 : op1;
+ }
/* The type of the conditional operators is BOOLEAN */
prom_type = boolean_type_node;
break;