* corrected llvm level type of interfaces

git-svn-id: trunk@32425 -
This commit is contained in:
Jonas Maebe 2015-11-21 12:37:47 +00:00
parent be69fbef4f
commit 8cebb76572
2 changed files with 12 additions and 3 deletions

View File

@ -478,10 +478,16 @@ implementation
encodedstr:=encodedstr+'*'
end;
odt_interfacecom,
odt_interfacecorba,
odt_dispinterface:
begin
{ type is a pointer to the vmt }
llvmaddencodedtype_intern(tobjectdef(def).vmt_def,flags,encodedstr);
if ([lef_typedecl,lef_noimplicitderef]*flags=[]) then
encodedstr:=encodedstr+'*';
end;
odt_interfacecom_function,
odt_interfacecom_property,
odt_interfacecorba,
odt_dispinterface,
odt_objcprotocol:
begin
{ opaque for now }

View File

@ -669,7 +669,10 @@ implementation
procedure TLLVMTypeInfo.appenddef_object(list:TAsmList;def: tobjectdef);
begin
appenddef_abstractrecord(list,def);
if is_any_interface_kind(def) then
record_def(def.vmt_def)
else
appenddef_abstractrecord(list,def);
end;