diff options
author | Tom Tromey <tromey@redhat.com> | 2006-09-12 19:00:48 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2006-09-12 19:00:48 +0000 |
commit | f8248aaa3b808d42da244c4c69feaa0db61ff489 (patch) | |
tree | c5fc3c1a84f7ec8086a8e4264049d1e6de109590 /gcc/java | |
parent | ed08fcf6fc001390cb827e8cf45d5b1e7d93847a (diff) | |
download | gcc-f8248aaa3b808d42da244c4c69feaa0db61ff489.zip gcc-f8248aaa3b808d42da244c4c69feaa0db61ff489.tar.gz gcc-f8248aaa3b808d42da244c4c69feaa0db61ff489.tar.bz2 |
re PR java/29013 (gcj generates a MetalLookAndFeel class that fails cacao's verifier)
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.
From-SVN: r116902
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/jcf-write.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 5ffb6df..af1c42b 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 aa4d33b..b68ec25 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; } |