From 81baa09a56392e03742b4b253b9fd82b3ecbd783 Mon Sep 17 00:00:00 2001 From: Alexandre Petit-Bianco Date: Wed, 16 Aug 2000 00:05:29 +0000 Subject: [PATCH] jcf-write.c (generate_bytecode_conditional): Re-installed lost Jan 6 2000 patch. 2000-08-14 Alexandre Petit-Bianco * jcf-write.c (generate_bytecode_conditional): Re-installed lost Jan 6 2000 patch. (generate_bytecode_insns): Check `nargs' before emitting it. * verify.c (merge_type_state): Fixed typo. * ChangeLog: Fixed typo in some jcf-write.c entries mentioning generate_bytecode_{conditional,insns}. (http://gcc.gnu.org/ml/gcc-patches/2000-08/msg00617.html) From-SVN: r35733 --- gcc/java/ChangeLog | 13 +++++++++++-- gcc/java/jcf-write.c | 5 ++++- gcc/java/verify.c | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 8569ddcdf13..4c889b0aba0 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,12 @@ +2000-08-14 Alexandre Petit-Bianco + + * jcf-write.c (generate_bytecode_conditional): Re-installed lost + Jan 6 2000 patch. + (generate_bytecode_insns): Check `nargs' before emitting it. + * verify.c (merge_type_state): Fixed typo. + * ChangeLog: Fixed typo in some jcf-write.c entries mentioning + generate_bytecode_{conditional,insns}. + Sun Aug 13 09:41:49 2000 Anthony Green * check-init.c (check_init): Add case for BIT_FIELD_REF (required @@ -2176,7 +2185,7 @@ Thu Jan 6 16:31:28 2000 Anthony Green Thu Jan 6 00:54:10 2000 Alexandre Petit-Bianco - * jcf-write.c (generate_byecode_conditional): Fixed indentation in + * jcf-write.c (generate_bytecode_conditional): Fixed indentation in method invocation and typo in conditional expression. (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue the appropriate NOTE_POP. @@ -2363,7 +2372,7 @@ Tue Nov 30 12:36:15 1999 Anthony Green Tue Nov 30 12:28:34 1999 Alexandre Petit-Bianco - * jcf-write.c (generate_byecode_insns): Fixed indentation for + * jcf-write.c (generate_bytecode_insns): Fixed indentation for COMPOUND_EXPR and FIX_TRUNC_EXPR cases. * parse.y (patch_assignment): Removed bogus final class test on diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index df50fffd80c..7ab1518fb8e 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -1254,7 +1254,7 @@ generate_bytecode_conditional (exp, true_label, false_label, } if (integer_zerop (exp1) || integer_zerop (exp0)) { - generate_bytecode_insns (integer_zerop (exp1) ? exp0 : exp0, + generate_bytecode_insns (integer_zerop (exp0) ? exp1 : exp0, STACK_TARGET, state); op = op + (OPCODE_ifnull - OPCODE_if_acmpeq); negop = (op & 1) ? op - 1 : op + 1; @@ -2565,6 +2565,9 @@ generate_bytecode_insns (exp, target, state) if (interface) { DECL_CONTEXT (f) = saved_context; + if (nargs <= 0) + fatal ("Illegal number of arguments to invokeinterface, nargs=%d", + nargs); OP1 (nargs); OP1 (0); } diff --git a/gcc/java/verify.c b/gcc/java/verify.c index 3aff5e45955..4c2e4c8b1d3 100644 --- a/gcc/java/verify.c +++ b/gcc/java/verify.c @@ -212,7 +212,7 @@ int merge_type_state (label) tree label; { - int nlocals = DECL_MAX_LOCALS(current_function_decl); + int nlocals = DECL_MAX_LOCALS (current_function_decl); int cur_length = stack_pointer + nlocals; tree vec = LABEL_TYPE_STATE (label); tree return_map; -- 2.30.2