]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR java/29013 (gcj generates a MetalLookAndFeel class that fails cacao's verifier)
authorTom Tromey <tromey@redhat.com>
Tue, 12 Sep 2006 19:00:48 +0000 (19:00 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 12 Sep 2006 19:00:48 +0000 (19:00 +0000)
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

gcc/java/ChangeLog
gcc/java/jcf-write.c
libjava/ChangeLog
libjava/testsuite/libjava.lang/PR29013.java [new file with mode: 0644]
libjava/testsuite/libjava.lang/PR29013.out [new file with mode: 0644]

index 5ffb6df295a36ec8d8fcb9e4dfe39dc6adbdcdc2..af1c42b12e457a966bf5df72fabf9e08b1e1c73f 100644 (file)
@@ -1,3 +1,9 @@
+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
index aa4d33b141f82fd24d4474677019e818f7bd0faa..b68ec25022916595c22edf753dd1e6e768c301af 100644 (file)
@@ -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;
          }
index 7e27a661b40399434e13dfb3447d22fd6270c44a..da8704f72dc342431df005b382b87f26525dffbb 100644 (file)
@@ -1,3 +1,9 @@
+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.
diff --git a/libjava/testsuite/libjava.lang/PR29013.java b/libjava/testsuite/libjava.lang/PR29013.java
new file mode 100644 (file)
index 0000000..942ba97
--- /dev/null
@@ -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 (file)
index 0000000..e69de29