mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-31 09:22:38 +02:00
* insert the hidden parameters for objectdef methods after resolving
overrides but before generating the VMT, so that these hidden parameters are part of the procdefs stored in the VMT (fixes some LLVM type errors after r41716) git-svn-id: trunk@41884 -
This commit is contained in:
parent
8ff0aaa369
commit
e008785152
@ -322,7 +322,6 @@ implementation
|
||||
vmtbuilder:=TVMTBuilder.Create(enumclass);
|
||||
vmtbuilder.generate_vmt;
|
||||
vmtbuilder.free;
|
||||
insert_struct_hidden_paras(enumclass);
|
||||
|
||||
restore_after_new_class(sstate,islocal,oldsymtablestack);
|
||||
current_structdef:=old_current_structdef;
|
||||
@ -433,7 +432,6 @@ implementation
|
||||
vmtbuilder:=TVMTBuilder.Create(pvclass);
|
||||
vmtbuilder.generate_vmt;
|
||||
vmtbuilder.free;
|
||||
insert_struct_hidden_paras(pvclass);
|
||||
|
||||
restore_after_new_class(sstate,islocal,oldsymtablestack);
|
||||
end;
|
||||
|
@ -60,7 +60,8 @@ implementation
|
||||
globals,verbose,systems,
|
||||
node,
|
||||
symbase,symtable,symconst,symtype,symcpu,
|
||||
defcmp;
|
||||
defcmp,
|
||||
pparautl;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
@ -922,6 +923,7 @@ implementation
|
||||
add_new_vmt_entry(tprocdef(def),overridesclasshelper);
|
||||
end;
|
||||
end;
|
||||
insert_struct_hidden_paras(_class);
|
||||
build_interface_mappings;
|
||||
if assigned(_class.ImplementedInterfaces) and
|
||||
not(is_objc_class_or_protocol(_class)) and
|
||||
|
@ -888,7 +888,6 @@ implementation
|
||||
vmtbuilder:=TVMTBuilder.Create(tobjectdef(hdef));
|
||||
vmtbuilder.generate_vmt;
|
||||
vmtbuilder.free;
|
||||
insert_struct_hidden_paras(tobjectdef(hdef));
|
||||
end;
|
||||
|
||||
{ In case of an objcclass, verify that all methods have a message
|
||||
|
@ -1059,7 +1059,6 @@ uses
|
||||
vmtbuilder:=TVMTBuilder.Create(tobjectdef(result));
|
||||
vmtbuilder.generate_vmt;
|
||||
vmtbuilder.free;
|
||||
insert_struct_hidden_paras(tobjectdef(result));
|
||||
end;
|
||||
{ handle params, calling convention, etc }
|
||||
procvardef:
|
||||
|
Loading…
Reference in New Issue
Block a user