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