java/5794: gcj fails to verify .class file generated by Sun JDK 1.4 compiler
Per Bothner
per@bothner.com
Tue Sep 17 15:46:00 GMT 2002
Eric Blake wrote:
> Sun's argument at the above link is that JLS 17.13 require the
> compiler to guarantee that the monitor is exited exactly once. If an
> asynchronous IllegalMonitorStateException occurs, Sun would rather
> have the thread enter an infinite loop than improperly exit the monitor.
Hm. I'm not convinced that this is the "right" solution, but feel
free to check the patch in. I still would prefer it be checked in as
two separate patches, since it fixes (I beleive) two unrelated problems.
Also, please add a note referencing Sun's bug 4414101 to the ChangeLog.
Perhaps:
* verify.c (verify_jvm_instructions): Don't require that the
exception handler target doesn't overlap the range it's guarding.
JDK 1.4 and gives generate "recursive" handlers; see
http://developer.java.sun.com/developer/bugParade/bugs/4414101.html
for an explanation.
(Normally, I'd prefer such an explanation in the code, not the
ChangeLog, but there isn't any place in the code to attach the note!)
--
--Per Bothner
per@bothner.com http://www.bothner.com/per/
More information about the Java-patches
mailing list