Hotspot compiler test 6571539 problem with CACAO

Keith McGuigan Keith.McGuigan at Sun.COM
Mon Jul 21 07:14:30 PDT 2008


Christian Thalinger wrote:
> Hi!
> 
> We have a problem in running a HotSpot compiler test with CACAO as VM.
> Here is the bug report:
> 
> http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=88
> 
> Could someone, with verifier knowledge, comment on this one?

I think that both Hotspot and the test's expectations are correct in 
this case, and that CACAO's verifier is being too strict.

In the JSR 202 specification, in the prolog code that defines the 
assignability rules has this (on page 182 of my copy):

isJavaAssignable(class(_, _), class(To, L) :-
   loadedClass(To, L, ToClass),
   classIsInterface(ToClass).

Which (if you follow through the rules) indicates that any class is 
assignable to any interface, regardless of the actual class lineage.

In fact, in both of the verifiers used in Hotspot, an interface 
reference in the type system is special-cased and treated as a 
'java.lang.Object' reference when it comes to assignability.  Any 
interface assignment errors are expected to be detected and resolved at 
runtime.

--
- Keith



More information about the hotspot-dev mailing list