mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 13:39:36 +02:00
* treat Objective-C metaclasses (classrefdefs) as voidpointertype at the
LLVM type level git-svn-id: trunk@32884 -
This commit is contained in:
parent
53bf43983a
commit
3f7169e250
@ -384,8 +384,13 @@ implementation
|
||||
end;
|
||||
classrefdef :
|
||||
begin
|
||||
llvmaddencodedtype_intern(tobjectdef(tclassrefdef(def).pointeddef).vmt_def,flags,encodedstr);
|
||||
encodedstr:=encodedstr+'*';
|
||||
if is_class(tclassrefdef(def).pointeddef) then
|
||||
begin
|
||||
llvmaddencodedtype_intern(tobjectdef(tclassrefdef(def).pointeddef).vmt_def,flags,encodedstr);
|
||||
encodedstr:=encodedstr+'*';
|
||||
end
|
||||
else
|
||||
encodedstr:=encodedstr+'i8*'
|
||||
end;
|
||||
setdef :
|
||||
begin
|
||||
|
@ -697,7 +697,9 @@ implementation
|
||||
procedure TLLVMTypeInfo.appenddef_classref(list: TAsmList; def: tclassrefdef);
|
||||
begin
|
||||
record_def(def);
|
||||
record_def(tobjectdef(tclassrefdef(def).pointeddef).vmt_def);
|
||||
{ can also be an objcclass, which doesn't have a vmt }
|
||||
if is_class(tclassrefdef(def).pointeddef) then
|
||||
record_def(tobjectdef(tclassrefdef(def).pointeddef).vmt_def);
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user