aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorRanjit Mathew <rmathew@hotmail.com>2004-04-30 18:19:37 +0000
committerRanjit Mathew <rmathew@gcc.gnu.org>2004-04-30 18:19:37 +0000
commit55ce9c52a2a92950c252e8d5a34a3b018448df11 (patch)
tree6b89dbbf7c15425987ef61a507b3be356eb69537 /libjava
parent3fb577a58935b9b1be60200000422ead1a69f561 (diff)
downloadgcc-55ce9c52a2a92950c252e8d5a34a3b018448df11.zip
gcc-55ce9c52a2a92950c252e8d5a34a3b018448df11.tar.gz
gcc-55ce9c52a2a92950c252e8d5a34a3b018448df11.tar.bz2
re PR java/15133 (gcjh generates wrong method signatures)
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use additional option "-Wmissing-prototypes" for compiling C sources. Print actual filename for pass/fail rather than $name.c. * testsuite/libjava.jni/PR15133.java: New testcase file. * testsuite/libjava.jni/PR15133.c: Likewise. * testsuite/libjava.jni/PR15133.out: Likewise. Co-Authored-By: Tom Tromey <tromey@redhat.com> From-SVN: r81358
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog10
-rw-r--r--libjava/testsuite/libjava.jni/PR15133.c9
-rw-r--r--libjava/testsuite/libjava.jni/PR15133.java14
-rw-r--r--libjava/testsuite/libjava.jni/PR15133.out1
-rw-r--r--libjava/testsuite/libjava.jni/jni.exp15
5 files changed, 46 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index d62ca38..e2968ca 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,13 @@
+2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
+ Tom Tromey <tromey@redhat.com>
+
+ * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
+ additional option "-Wmissing-prototypes" for compiling C sources.
+ Print actual filename for pass/fail rather than $name.c.
+ * testsuite/libjava.jni/PR15133.java: New testcase file.
+ * testsuite/libjava.jni/PR15133.c: Likewise.
+ * testsuite/libjava.jni/PR15133.out: Likewise.
+
2004-04-30 Roger Sayle <roger@eyesopen.com>
* testsuite/libjava.lang/MathBuiltin.java: Add tests for acos, asin,
diff --git a/libjava/testsuite/libjava.jni/PR15133.c b/libjava/testsuite/libjava.jni/PR15133.c
new file mode 100644
index 0000000..be5a48e
--- /dev/null
+++ b/libjava/testsuite/libjava.jni/PR15133.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+#include <jni.h>
+#include "PR15133.h"
+
+JNIEXPORT void JNICALL
+Java_PR15133_printIt (JNIEnv *env, jobject x, jint y)
+{
+ printf ("%d\n", y);
+}
diff --git a/libjava/testsuite/libjava.jni/PR15133.java b/libjava/testsuite/libjava.jni/PR15133.java
new file mode 100644
index 0000000..9043576
--- /dev/null
+++ b/libjava/testsuite/libjava.jni/PR15133.java
@@ -0,0 +1,14 @@
+/* Test case for PR java/15133 */
+public class PR15133
+{
+ public void printIt (String dummy) { }
+
+ public native void printIt (int num);
+
+ public static void main (String[] args)
+ {
+ System.loadLibrary ("PR15133");
+
+ new PR15133( ).printIt( 1729);
+ }
+}
diff --git a/libjava/testsuite/libjava.jni/PR15133.out b/libjava/testsuite/libjava.jni/PR15133.out
new file mode 100644
index 0000000..32bb421
--- /dev/null
+++ b/libjava/testsuite/libjava.jni/PR15133.out
@@ -0,0 +1 @@
+1729
diff --git a/libjava/testsuite/libjava.jni/jni.exp b/libjava/testsuite/libjava.jni/jni.exp
index 7dad519..a4bf4b8 100644
--- a/libjava/testsuite/libjava.jni/jni.exp
+++ b/libjava/testsuite/libjava.jni/jni.exp
@@ -21,12 +21,21 @@ proc gcj_jni_compile_c_to_so {file {options {}}} {
set so_extension "so"
set so_flag "-shared"
}
- set name [file rootname [file tail $file]]
+ set filename [file tail $file]
+ set name [file rootname $filename]
set soname lib${name}.${so_extension}
lappend options "additional_flags=${so_flag} -fPIC"
# Find the generated header.
lappend options "additional_flags=-I. -I.."
+
+ # Ensure that the generated header has correct prototypes.
+ set cfile [file rootname $file].c
+ if { [file exists $cfile]} {
+ # This option is only valid for C sources.
+ lappend options "additional_flags=-Wmissing-prototypes"
+ }
+
# Find jni.h.
lappend options "additional_flags=-I$srcdir/../include"
@@ -34,11 +43,11 @@ proc gcj_jni_compile_c_to_so {file {options {}}} {
[target_compile $file $soname executable $options]]
if {$x != ""} {
verbose "target_compile failed: $x" 2
- fail "$name.c compilation"
+ fail "$filename compilation"
return 0
}
- pass "$name.c compilation"
+ pass "$filename compilation"
return 1
}