diff options
author | Matthew Fortune <matthew.fortune@imgtec.com> | 2016-07-13 21:34:35 +0000 |
---|---|---|
committer | Matthew Fortune <mpf@gcc.gnu.org> | 2016-07-13 21:34:35 +0000 |
commit | 845a4b727a88af8f4008e24e1a02ce49607bd91a (patch) | |
tree | b789f4dfd03279d4cf8d6a4e9ab01430a7bb766d /libjava | |
parent | e383deac8ba094f612386a166239f33752fa5808 (diff) | |
download | gcc-845a4b727a88af8f4008e24e1a02ce49607bd91a.zip gcc-845a4b727a88af8f4008e24e1a02ce49607bd91a.tar.gz gcc-845a4b727a88af8f4008e24e1a02ce49607bd91a.tar.bz2 |
Fix the use of FFI closures in the java interpreter for integer returns
libjava/
* interpret-run.cc: Use ffi_arg for FFI integer return types.
* testsuite/libjava.jar/arraysort.java: New file.
* testsuite/libjava.jar/arraysort.jar: New file.
* testsuite/libjava.jar/arraysort.out: New file.
* testsuite/libjava.jar/arraysort.xfail: New file.
From-SVN: r238311
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/interpret-run.cc | 2 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jar/arraysort.jar | bin | 0 -> 1864 bytes | |||
-rw-r--r-- | libjava/testsuite/libjava.jar/arraysort.java | 44 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jar/arraysort.out | 10 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jar/arraysort.xfail | 1 |
6 files changed, 64 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a3bead2..06b354d 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2016-07-13 Matthew Fortune <matthew.fortune@imgtec.com> + + * interpret-run.cc: Use ffi_arg for FFI integer return types. + * testsuite/libjava.jar/arraysort.java: New file. + * testsuite/libjava.jar/arraysort.jar: New file. + * testsuite/libjava.jar/arraysort.out: New file. + * testsuite/libjava.jar/arraysort.xfail: New file. + 2016-06-01 Matthias Klose <doko@ubuntu.com> * libtool-version: Bump soversion. diff --git a/libjava/interpret-run.cc b/libjava/interpret-run.cc index a4c2d4d..6be354e 100644 --- a/libjava/interpret-run.cc +++ b/libjava/interpret-run.cc @@ -1838,7 +1838,7 @@ details. */ return; insn_ireturn: - *(jint *) retp = POPI (); + *(ffi_arg *) retp = POPI (); return; insn_return: diff --git a/libjava/testsuite/libjava.jar/arraysort.jar b/libjava/testsuite/libjava.jar/arraysort.jar Binary files differnew file mode 100644 index 0000000..ee051e4 --- /dev/null +++ b/libjava/testsuite/libjava.jar/arraysort.jar diff --git a/libjava/testsuite/libjava.jar/arraysort.java b/libjava/testsuite/libjava.jar/arraysort.java new file mode 100644 index 0000000..56c181d --- /dev/null +++ b/libjava/testsuite/libjava.jar/arraysort.java @@ -0,0 +1,44 @@ +import java.util.Arrays; +import java.util.Comparator; + +public class arraysort +{ + private static final Comparator<String> STRING_COMPARATOR = new Comparator<String>() + { + public int compare(String str1, String str2) + { + return str1.compareTo(str2); + } + }; + + static void dumpArray(String[] strings) + { + int i; + + for (i = 0 ; i < strings.length ; i++) + { + System.out.println("[" + i + "] " + strings[i]); + } + } + + public static void main(String[] args) + { + String[] strings; + + strings = new String[4]; + + strings[0] = "a"; + strings[1] = "c"; + strings[2] = "b"; + strings[3] = "d"; + + System.out.println("Array of string, before:"); + dumpArray(strings); + + Arrays.sort(strings, STRING_COMPARATOR); + + System.out.println("Array of string, after:"); + dumpArray(strings); + } +} + diff --git a/libjava/testsuite/libjava.jar/arraysort.out b/libjava/testsuite/libjava.jar/arraysort.out new file mode 100644 index 0000000..938ce9f --- /dev/null +++ b/libjava/testsuite/libjava.jar/arraysort.out @@ -0,0 +1,10 @@ +Array of string, before: +[0] a +[1] c +[2] b +[3] d +Array of string, after: +[0] a +[1] b +[2] c +[3] d diff --git a/libjava/testsuite/libjava.jar/arraysort.xfail b/libjava/testsuite/libjava.jar/arraysort.xfail new file mode 100644 index 0000000..2bbbe56 --- /dev/null +++ b/libjava/testsuite/libjava.jar/arraysort.xfail @@ -0,0 +1 @@ +main=arraysort |