Harold, Code fix looks good.
If you haven't already checked this in - would you mind renaming "has_unique_new_object" to something like "has_nonmatching_uninit_object" or "has_nonmatching_new_object"? If that makes sense to you. thanks, Karen On Aug 22, 2014, at 10:47 AM, harold seigel wrote: > Hi, > > Please review this small fix for bug 8046233 for JDK-7u. > > Section 4.10.2.4 > <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.10.2.4> > of the JVM-7 Spec says: > > A valid instruction sequence must not have an uninitialized object > on the operand stack or in a local variable at the target of a > backwards branch if the special type of the uninitialized object is > merged with a special type other than itself ... > > Currently, the split verifier does not allow any backward branches into a > block containing an uninitialized object. This fix allows such backward > branches if the originating block contains an uninitialized object of the > same special type. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8046233 > Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8046233_7/ > > The fix was tested with the JCK lang, vm, and api/java_lang tests, the JTREG > hotspot tests, and tests that reproduced the problem. With this fix, the > tests that reproduce the problem get the same result with both the old and > the split verifier. > > This bug has already been fixed in JDK-8u and JDK-9. But, a straight > back-port to JDK-7u could not be done because the JVM-8 Spec differs from the > JVM-7 Spec for this case. > > Thanks, Harold