If I copy the current cvs classpath into the libjava build directory
and try to build, I get an ICE.
The problem occurs because of this code in build_field_ref:
if (! flag_syntax_only
&& (flag_indirect_dispatch
/* DECL_FIELD_OFFSET == 0 if we have no reference for
the field, perhaps because we couldn't find the class
in which the field is defined.
FIXME: We should investigate this. */
|| DECL_FIELD_OFFSET (field_decl) == 0))
... flag_indirect_dispatch is false, but we have DECL_FIELD_OFFSET==0
for a 'this$0' field. So, we wind up using the indirect dispatch code
anyway. This causes a later crash (we build a bogus tree since the
otable is NULL).
I haven't investigated why DECL_FIELD_OFFSET can be 0 here.

This is definetly not a regression.
Before 4.0.0, we got:
javax/swing/AbstractButton.java: In class `javax.swing.AbstractButton$AccessibleAbstractButton':
javax/swing/AbstractButton.java: In method `(javax.swing.AbstractButton)':
javax/swing/AbstractButton.java:2011: Internal compiler error in expand_expr, at expr.c:6865
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

More information, maybe_layout_super_class is returning NULL.
the Supper class is SynchronizedCollection.
This is for java.util.Collections$SynchronizedSet.
Which means we have a couple of issues like this.
do_resolve_class in maybe_layout_super_class is returning null.