The InnerClasses attribute in a .class file must have an entry for any nested class referenced by the .class file. Currently gcj does not do this. For instance, from java.util.AbstractMap: Attribute "InnerClasses", length:26 inner: java.util.AbstractMap$BasicMapEntry, access flags: 0x8 static, outer class: java.util.AbstractMap inner: java.util.AbstractMap$3 (anonymous), access flags: 0x12 private final, outer class: <constant pool index 0 not in range> inner: java.util.AbstractMap$1 (anonymous), access flags: 0x12 private final, outer class: <constant pool index 0 not in range> However, this class refers to : 29: checkcast <Class java.util.Map$Entry> 32: invokeinterface <InterfaceMethod java.util.Map$Entry.getKey ()java.lang.Object> nargs:1
Confirmed.
All gcj front end bugs have been fixed by the gcj-eclipse branch merge. I'm mass-closing the affected PRs. If you believe one of these was closed in error, please reopen it with a note explaining why. Thanks.