[there should be a gcc-java category :-)] Given the java code: import java.util.Observer; import java.util.Observable; class x { Observer y = new Observer () { public void update (Observable v, Object o) { } }; void function () { class O implements Observer { public void update (Observable v, Object o) { } }; } } GCJ creates the .class files: $ gcj -C x.java $ ls *.class x$1.class x$2$O.class x.class where as sun's compiler creates: x$1.class x$1O.class x.class
FYI, ECJ exibits behavior consistent with sun (so presumably implemented the same algorithm). I'd assume this is a pedantic language-lawyer edge case (which is why I set the severity to "low" :-).
AFAIK there's no spec or requirement for inner class names. In fact I don't recall ever seeing that Sun's approach is documented.
This report targets the FC3 or FC4 products, which have now been EOL'd. Could you please check that it still applies to a current Fedora release, and either update the target product or close it ? Thanks.
This still affects FC5 and FC6. I set the version field here to fc6. In F7 the inner class names are dependent on what the Eclipse compiler does. If they are identical to sun, per comment #2, then this bug will be fixed there. In any case the names here are not part of the spec. Fixing this in an older gcj is pretty hard. I don't think anyone will bother.
I don't think it is even desirable to change this in FC5/FC6, there we primarily need to avoid ABI breakages and need to be compatible with FC5 resp. FC6 gcj.
I agree. I am closing this. I chose "wontfix", but I don't really know which resolution is most appropriate.