aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-11 19:37:03 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-11 19:37:03 +0000
commitedca951e776d5097306cd2568beeb3ed963f9a9a (patch)
tree2fc6bd8d26e8561bf3b66554aa2bd1113acca2fc
parent6f2cc60fb870ced9306406722e51661302907eb9 (diff)
2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
For PR java/5794: * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the return label if a ret instruction for the jsr has been reached. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57035 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/verify.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index b95e8aec40b..63d036a53e4 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
+
+ For PR java/5794:
+ * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
+ return label if a ret instruction for the jsr has been reached.
+
2002-09-09 Ranjit Mathew <rmathew@hotmail.com>
* parse.y (DIR_SEPARATOR): Don't define.
diff --git a/gcc/java/verify.c b/gcc/java/verify.c
index c3b3b98a84d..081116815f4 100644
--- a/gcc/java/verify.c
+++ b/gcc/java/verify.c
@@ -1,6 +1,6 @@
/* Handle verification of bytecoded methods for the GNU compiler for
the Java(TM) language.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -1326,7 +1326,8 @@ verify_jvm_instructions (jcf, byte_ops, length)
type_map[len] = TREE_VEC_ELT (return_map, len);
}
current_subr = LABEL_SUBR_CONTEXT (target);
- PUSH_PENDING (return_label);
+ if (RETURN_MAP_ADJUSTED (return_map))
+ PUSH_PENDING (return_label);
}
INVALIDATE_PC;