This specifies a sub-bug of 18212. The test-case is simple, not the severity!
Given are 2 independet(!) and (almost) empty classes: A1 and A2. A1 has the main() method. A1 is in jar J1, A2 in jar J2. The bug: Compiling the jar J1 by giving the output file by -o fails, when compiled with J2. failing: gcj -o foo --classpath=J2.jar:. --main=A1 J1.jar J2.jar gcj -o foo --classpath=J2.jar:J1.jar --main=A1 J1.jar J2.jar working: gcj -o foo --main=A1 J1.jar J2.jar gcj -o foo --classpath=J2.jar:. --main=A1 J1.jar gcj -o foo --main=A1 J1.jar gcj --classpath=J2.jar:. --main=A1 J1.jar J2.jar gcj --classpath=J2.jar:. --main=A1 J1.jar gcj --main=A1 J1.jar J2.jar gcj --main=A1 J1.jar When failing, it reports: java/awt/Component.java: In class `java.awt.Component': java/awt/Component.java: In method `java.awt.Component.eventTypeEnabled(int)': java/awt/Component.java:4127: error: expected type 'int' but stack contains 'void' java/awt/Component.java:4127: error: verification error at PC=311 java/awt/Component.java:4127: error: types could not be merged ObjectInputStream.java: In class `java.io.ObjectInputStream$3': ObjectInputStream.java: In method `java.io.ObjectInputStream$3.getField(java.lang.String,java.lang.Class)': ObjectInputStream.java:1257: error: verification error at PC=45 ObjectInputStream.java:1257: error: loading local variable 6 which has unknown type java/lang/Class.java:0: confused by earlier errors, bailing out The source codes: 1) A1.java public class A1 { public static void main(String args[]) { } } 2) A2.java: public class A2 { } -- Summary: compilation with a redundant jar fails, if output file specified Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: critical Priority: P1 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bojan at antonovic dot com CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20351