gcj -c --classpath=jakarta-poi.jar joone-engine.jar -o joone-engine.o with the files in the attached tar file. The same crash exists since at least gcc 3.2. In 4.0 there's an additional buglet in that the filename in the error message has been corrupted; it renders as 8 open squares in my terminal. Prior versions printed the filename properly.
Created attachment 7274 [details] test case
Confirmed.
The simple workaround is to use the new BC-ABI (-findirect-dispatch). I do see the abort(), but the filenames are printed properly (current mainline).
I happened to try this out this weekend. I don't see an ICE in build_java_check_indexed_type (with 4.0, 4.1 and head). Now I see: + gcj -c --classpath=jakarta-poi.jar joone-engine.jar -o joone-engine.o org/joone/log/Log4JLogger.java: In class 'org.joone.log.Log4JLogger': org/joone/log/Log4JLogger.java: In method 'org.joone.log.Log4JLogger.debug(java.lang.Object)': org/joone/log/Log4JLogger.java:25: error: cannot find file for class org.apache.log4j.Logger org/joone/log/Log4JLogger.java:25: error: class 'org.apache.log4j.Logger' has no method named 'debug' matching signature '(Ljava/lang/Object;)V' org/joone/log/Log4JLogger.java: In method 'org.joone.log.Log4JLogger.debug(java.lang.Object,java.lang.Throwable)': org/joone/log/Log4JLogger.java:29: error: cannot find file for class org.apache.log4j.Logger org/joone/log/Log4JLogger.java:29: error: class 'org.apache.log4j.Logger' has no method named 'debug' matching signature '(Ljava/lang/Object;Ljava/lang/Throwable;)V' org/joone/log/Log4JLogger.java:29: internal compiler error: in expand_expr_real_1, at expr.c:6552
Closing as won't fix as the Java front-end has been removed from the trunk.