aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorJesse Rosenstock <jmr@ugcs.caltech.edu>2002-09-11 19:37:03 +0000
committerTom Tromey <tromey@redhat.com>2002-09-11 19:37:03 +0000
commit56b79689f877cbfebbdb7f26bb3299aa53604e3c (patch)
tree2fc6bd8d26e8561bf3b66554aa2bd1113acca2fc /gcc/java
parent85f4aa484d35da6e3d098466a8586da31dfe7825 (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: https://gcc.gnu.org/svn/gcc/trunk@57035 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-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;