Patch: RFA: fix PR java/21519
Tom Tromey
tromey@redhat.com
Fri May 13 21:24:00 GMT 2005
This patch fixes PR java/21519.
There is a small bug in save_expr handling when writing bytecode.
emit_load calls NOTE_PUSH for us, so we don't need to call it
ourselves. This only gets triggered by "gcj -C -O2".
Test case included. Tested on x86 FC2, including jacks, with no
regressions. Ok for trunk and 4.0 branch?
Tom
Index: gcc/java/ChangeLog
from Tom Tromey <tromey@redhat.com>
PR java/21519:
* jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
NOTE_PUSH.
Index: gcc/java/jcf-write.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/jcf-write.c,v
retrieving revision 1.162
diff -u -r1.162 jcf-write.c
--- gcc/java/jcf-write.c 14 Feb 2005 20:04:36 -0000 1.162
+++ gcc/java/jcf-write.c 13 May 2005 21:19:21 -0000
@@ -2235,7 +2235,6 @@
{
tree type = TREE_TYPE (exp);
emit_load (arg, state);
- NOTE_PUSH (TYPE_IS_WIDE (type) ? 2 : 1);
}
break;
case CONVERT_EXPR:
Index: libjava/ChangeLog
from Tom Tromey <tromey@redhat.com>
PR java/21519:
* testsuite/libjava.compile/pr21519.java: New file.
* testsuite/libjava.compile/pr21519.no-link: New file.
Index: libjava/testsuite/libjava.compile/pr21519.java
===================================================================
RCS file: libjava/testsuite/libjava.compile/pr21519.java
diff -N libjava/testsuite/libjava.compile/pr21519.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ libjava/testsuite/libjava.compile/pr21519.java 13 May 2005 21:19:24 -0000
@@ -0,0 +1,8 @@
+public class pr21519 {
+ char[] source;
+ public int compute(int pos) {
+ for (int i = 0; i < pos; ++i)
+ if (!(source[i] == ' ' || source[i] == '\t')) return -1;
+ return pos;
+ }
+}
Index: libjava/testsuite/libjava.compile/pr21519.no-link
===================================================================
RCS file: libjava/testsuite/libjava.compile/pr21519.no-link
diff -N libjava/testsuite/libjava.compile/pr21519.no-link
More information about the Java-patches
mailing list