* apparently, Darwin/x86-64 also uses an opaque ISA pointer on OS X 10.11

-> assume it is always the case for non-fragile ABI platforms
    (mantis #29667)

git-svn-id: trunk@33112 -
This commit is contained in:
Jonas Maebe 2016-02-22 08:44:00 +00:00
parent 94c0938edd
commit 356a5aff05

View File

@ -252,10 +252,11 @@ implementation
if (is_objc_class_or_protocol(left.resultdef) or
is_objcclassref(left.resultdef)) then
begin
if target_info.system=system_aarch64_darwin then
{ on non-fragile ABI platforms, the ISA pointer may be opaque
and we must call Object_getClass to obtain the real ISA
pointer }
if target_info.system in systems_objc_nfabi then
begin
{ on Darwin/AArch64, the isa field is opaque and we must
call Object_getClass to obtain the actual ISA pointer }
result:=ccallnode.createinternfromunit('OBJC','OBJECT_GETCLASS',ccallparanode.create(left,nil));
inserttypeconv_explicit(result,resultdef);
end