From ad903c6db716b2bfbbc242afc0252443ad72ca46 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Thu, 21 Apr 2005 16:22:33 +0000 Subject: [PATCH] re PR java/21115 (false boolean argument passed from pre-compiled to interpreted method is true) 2005-04-21 Anthony Green PR libgcj/21115 * testsuite/libjava.special/special.exp, testsuite/libjava.special/pr21115I.java, testsuite/libjava.special/pr21115.java, testsuite/libjava.special/pr21115.out: New files. From-SVN: r98511 --- libjava/ChangeLog | 8 +++++ .../testsuite/libjava.special/pr21115.java | 34 +++++++++++++++++++ libjava/testsuite/libjava.special/pr21115.out | 0 .../testsuite/libjava.special/pr21115I.java | 20 +++++++++++ libjava/testsuite/libjava.special/special.exp | 30 ++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 libjava/testsuite/libjava.special/pr21115.java create mode 100644 libjava/testsuite/libjava.special/pr21115.out create mode 100644 libjava/testsuite/libjava.special/pr21115I.java create mode 100644 libjava/testsuite/libjava.special/special.exp diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d031f2b6685..d8611531cd1 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2005-04-21 Anthony Green + + PR libgcj/21115 + * testsuite/libjava.special/special.exp, + testsuite/libjava.special/pr21115I.java, + testsuite/libjava.special/pr21115.java, + testsuite/libjava.special/pr21115.out: New files. + 2005-04-21 Chris Burdess * gnu/java/net/CRLFInputStream.java: Rewrite to return diff --git a/libjava/testsuite/libjava.special/pr21115.java b/libjava/testsuite/libjava.special/pr21115.java new file mode 100644 index 00000000000..2e23f271eb1 --- /dev/null +++ b/libjava/testsuite/libjava.special/pr21115.java @@ -0,0 +1,34 @@ +public abstract class pr21115 +{ + public static void main(String[] args) throws Exception + { + Class c = Class.forName("pr21115I"); + Object o = c.newInstance(); + pr21115 t = (pr21115) o; + // Try to fill the stack with 0xff. + t.test (0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff); + // Pass a bunch of false (0) values. + if (t.test (false, false, + false, false, + false, false, + false, false, + false, false)) + System.out.println ("FAILED - expecting false return value."); + } + + public abstract boolean test(boolean a, boolean b, + boolean c, boolean d, + boolean e, boolean f, + boolean g, boolean h, + boolean i, boolean j); + + public abstract boolean test(int a, int b, + int c, int d, + int e, int f, + int g, int h, + int i, int j); +} diff --git a/libjava/testsuite/libjava.special/pr21115.out b/libjava/testsuite/libjava.special/pr21115.out new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libjava/testsuite/libjava.special/pr21115I.java b/libjava/testsuite/libjava.special/pr21115I.java new file mode 100644 index 00000000000..17701ac079c --- /dev/null +++ b/libjava/testsuite/libjava.special/pr21115I.java @@ -0,0 +1,20 @@ +public class pr21115I extends pr21115 +{ + public boolean test(boolean a, boolean b, + boolean c, boolean d, + boolean e, boolean f, + boolean g, boolean h, + boolean i, boolean j) + { + return a && b && c && d && e && f && g && h && i; + } + + public boolean test(int a, int b, + int c, int d, + int e, int f, + int g, int h, + int i, int j) + { + return true; + } +} diff --git a/libjava/testsuite/libjava.special/special.exp b/libjava/testsuite/libjava.special/special.exp new file mode 100644 index 00000000000..76afd9a70b0 --- /dev/null +++ b/libjava/testsuite/libjava.special/special.exp @@ -0,0 +1,30 @@ +# Special test cases. These require tricky build procedures. + +proc gcj_special_run {} { + global srcdir subdir env + + # ---- PR 21115 ------------------------------------------------------- + + if {! [bytecompile_file ${srcdir}/${subdir}/pr21115I.java [pwd]]} { + fail "bytecompile ${srcdir}/${subdir}/libjava.special/pr21115I.java" + # FIXME - should use `untested' on all remaining tests. + # But that is hard. + return 0 + } + pass "bytecompile pr21115I.java" + + if {! [gcj_link pr21115 pr21115 [list ${srcdir}/${subdir}/pr21115.java]]} { + fail "compiling/linking pr21115.java" + # FIXME + return 0 + } + + if {! [gcj_invoke pr21115 ${srcdir}/${subdir}/pr21115.out ""]} { + # FIXME + return 0 + } + + return 1 +} + +gcj_special_run