This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: JNI bug?


Andrew Haley writes:
 > Marco Trudel writes:
 >  > Hey all
 >  > 
 >  > Here's an interesting one where GCJ sometimes isn't doing the same as a 
 >  > Sun JDK (no no Andrew, don't stop reading ;-)). Check out this little 
 >  > Java class:
 >  > 
 >  > public class NativeBooleanTest
 >  > {
 >  > 	public static void main(String[] args)
 >  > 	{
 >  > 		System.loadLibrary("nativeBoolean");
 >  > 		nativePrintBoolean(false);
 >  > 		nativePrintBooleanAsInt(false);
 >  > 	}
 >  > 	
 >  > 	private static native void nativePrintBoolean(boolean b);
 >  > 	private static native void nativePrintBooleanAsInt(boolean b);
 >  > }
 >  > 
 >  > Now this c code:
 >  > 
 >  > #include <jni.h>
 >  > 
 >  > JNIEXPORT void JNICALL Java_NativeBooleanTest_nativePrintBoolean
 >  > 	(JNIEnv *env, jclass c, jboolean b)
 >  > {
 >  > 	printf("nativePrintBoolean: %d\n", b);
 >  > }
 >  > 
 >  > JNIEXPORT void JNICALL Java_NativeBooleanTest_nativePrintBooleanAsInt
 >  > 	(JNIEnv *env, jclass c, jint b)
 >  > {
 >  > 	printf("nativePrintBooleanAsInt: %d\n", b);
 >  > }
 >  > 
 >  > 
 >  > On a sun JVM, the output will be:
 >  > nativePrintBoolean: 0
 >  > nativePrintBooleanAsInt: 0
 >  > 
 >  > On GCJ, in this minimalistic sample, it will always be:
 >  > nativePrintBoolean: 0
 >  > nativePrintBooleanAsInt: 10084864
 >  > 
 >  > In a huge library I debugged for this, GCJ 4.3 gives twice 0 if 
 >  > optimization is disabled and also "10084864" as soon as optimization is 
 >  > enabled. GCJ 4.2 gives twice 0 in -O3 mode, GCJ 4.3 no longer.
 >  > 
 >  > 
 >  > So,what do others think? What is the problem? Should there be an 
 >  > implicit cast? Is the code wrong? If yes, should it be attended so that 
 >  > the Sun RE is met?
 >  > Unfortunately, this seems to go into the same unpleasant RE topic as my 
 >  > Arrays patch... But it also might be a GCJ bug. I don't know for sure.

Err, *why* are you doing this weird thing, anyway?  Why not pass the correct type?

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]