summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-12 19:00:48 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-12 19:00:48 +0000
commitd7bec157350258dc9b9fe9def92f6736fde66b2d (patch)
treec5fc3c1a84f7ec8086a8e4264049d1e6de109590
parent7c3fa44a2cdd0d9c0731c2fb4683d55e2b31246e (diff)
downloadppe42-gcc-d7bec157350258dc9b9fe9def92f6736fde66b2d.tar.gz
ppe42-gcc-d7bec157350258dc9b9fe9def92f6736fde66b2d.zip
gcc/java
PR java/29013: * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note the push of the called method's return result. libjava PR java/29013: * testsuite/libjava.lang/PR29013.out: Likewise. * testsuite/libjava.lang/PR29013.java: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116902 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/jcf-write.c10
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/testsuite/libjava.lang/PR29013.java9
-rw-r--r--libjava/testsuite/libjava.lang/PR29013.out0
5 files changed, 28 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 5ffb6df295a..af1c42b12e4 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,5 +1,11 @@
2006-09-12 Tom Tromey <tromey@redhat.com>
+ PR java/29013:
+ * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
+ the push of the called method's return result.
+
+2006-09-12 Tom Tromey <tromey@redhat.com>
+
* jvspec.c (lang_specific_driver): Read spec file even if
-fsyntax-only.
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c
index aa4d33b141f..b68ec250229 100644
--- a/gcc/java/jcf-write.c
+++ b/gcc/java/jcf-write.c
@@ -2651,10 +2651,14 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state)
if (TREE_CODE (f) != VOID_TYPE)
{
int size = TYPE_IS_WIDE (f) ? 2 : 1;
+ /* Always note the push here, so that we correctly
+ compute the required maximum stack size. */
+ NOTE_PUSH (size);
if (target == IGNORE_TARGET)
- emit_pop (size, state);
- else
- NOTE_PUSH (size);
+ {
+ emit_pop (size, state);
+ NOTE_POP (size);
+ }
}
break;
}
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7e27a661b40..da8704f72dc 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,11 @@
2006-09-12 Tom Tromey <tromey@redhat.com>
+ PR java/29013:
+ * testsuite/libjava.lang/PR29013.out: Likewise.
+ * testsuite/libjava.lang/PR29013.java: New file.
+
+2006-09-12 Tom Tromey <tromey@redhat.com>
+
* testsuite/libjava.jacks/jacks.exp (load_gcc_lib): Removed.
2006-09-07 Matthias Klose <doko@debian.org>
diff --git a/libjava/testsuite/libjava.lang/PR29013.java b/libjava/testsuite/libjava.lang/PR29013.java
new file mode 100644
index 00000000000..942ba97bb8e
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/PR29013.java
@@ -0,0 +1,9 @@
+public class PR29013 {
+ public static int result() { return 5; }
+
+ public static void computeResult() { result(); }
+
+ public static void main(String[] args) {
+ computeResult();
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/PR29013.out b/libjava/testsuite/libjava.lang/PR29013.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/PR29013.out
OpenPOWER on IntegriCloud