* when determining the type to use for checkcast, first always dereference

pointers to implicit pointer types so that afterwards we can set the
    appropriate corresponding class type

git-svn-id: branches/jvmbackend@18668 -
This commit is contained in:
Jonas Maebe 2011-08-20 08:22:52 +00:00
parent 6cced31157
commit 7286e3b645

View File

@ -1192,10 +1192,11 @@ implementation
else
checkdef:=node.right.resultdef;
{ replace special types with their equivalent class type }
if (checkdef.typ=pointerdef) and
jvmimplicitpointertype(tpointerdef(checkdef).pointeddef) then
checkdef:=tpointerdef(checkdef).pointeddef;
if checkdef=voidpointertype then
checkdef:=java_jlobject
else if checkdef.typ=pointerdef then
checkdef:=tpointerdef(checkdef).pointeddef
else if checkdef.typ=enumdef then
checkdef:=tenumdef(checkdef).classdef
else if checkdef.typ=setdef then