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] | |
Hi, I'm seeing a problem with a 4.2.0 snapshot. The following program fails to run; without the patch mentioned, it still fails, but in `java.lang.Class.initializeClass,' not in `testbc.<clinit>'. Without the patch, it fails at line 1663 of link.cc, which is the `if' in:
jstring *strp = (jstring *) f->u.addr; if (*strp) *strp = _Jv_NewStringUTF8Const ((_Jv_Utf8Const *) *strp);
Running this interpreted, or compiled directly works; compiling it with -findirect-dispatch and launching it with `gij' fails.
Thanks.
----
/*
* Steps to reproduce:
* 1. gcj -C testbc.java
* 2. jar cf testbc.jar testbc.class
* 3. gcj -shared -g -O2 -findirect-dispatch -o testbc.jar.so testbc.jar
* 4. gcj-dbtool -n testbc.gcjdb 32
* 5. gcj-dbtool -a testbc.gcjdb testbc.jar testbc.jar.so
* 6. gij -cp testbc.jar -Dgnu.gcj.precompiled.db.path=testbc.gcjdb testbc
*
* Expected output:
* {}
* Actual output:
* Exception in thread "main" java.lang.ExceptionInInitializerError
* at java.lang.Class.initializeClass (natClass.cc:758)
* at java.lang.Class.forName (Class.h:641)
* at gnu.java.lang.MainThread.run (MainThread.java:95)
* Caused by: java.lang.NullPointerException
* at testbc.<clinit> (testbc.java:5)
* at java.lang.Class.initializeClass (natClass.cc:750)
* ...2 more
*
* Version info:
* gcj (GCC) 4.2.0 20060506 (experimental)
* Copyright (C) 2006 Free Software Foundation, Inc.
* This is free software; see the source for copying conditions. There is NO
* warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* This patch was applied to the sources:
* http://gcc.gnu.org/ml/java-patches/2006-q2/msg00127.html
*
* Host triplet (build and target): i686-pc-linux-gnu.
*/
import java.util.Hashtable;
public class testbc { protected static Hashtable cache = new Hashtable();
public static void main (String[] s) throws Throwable { System.out.println (cache); } }
Attachment:
PGP.sig
Description: This is a digitally signed message part
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |