diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-12 19:00:48 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-12 19:00:48 +0000 |
| commit | d7bec157350258dc9b9fe9def92f6736fde66b2d (patch) | |
| tree | c5fc3c1a84f7ec8086a8e4264049d1e6de109590 | |
| parent | 7c3fa44a2cdd0d9c0731c2fb4683d55e2b31246e (diff) | |
| download | ppe42-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/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/java/jcf-write.c | 10 | ||||
| -rw-r--r-- | libjava/ChangeLog | 6 | ||||
| -rw-r--r-- | libjava/testsuite/libjava.lang/PR29013.java | 9 | ||||
| -rw-r--r-- | libjava/testsuite/libjava.lang/PR29013.out | 0 |
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 |

