This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Java: Miranda methods fix - PR 12254


Miranda methods are those defined in an interface and implemented by an abstract class that does not explicitly redeclare or define them. A recent patch fixed/improved the way these "miranda methods" are implemented in GCJ, however it caused a problem which broke libgcj's networking code:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12254

The problem seems to be that the order in which methods in an interface are seen by add_miranda_methods is dependent on whether that interface has previously been "laid out" by layout_class_methods - order matters for the current Java ABI. The solution is to call layout_class_methods explicitly on super-interfaces prior to checking them for miranda methods.

This patch also modifies make_class_data so miranda methods are not included in abstract classes reflection data.

OK to commit?

Bryce.

Attachment: PR12254.patch.txt
Description: Text document



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]