mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-06 07:18:23 +02:00
compiler: skip objc types in ProcVar rtti arguments and result type
git-svn-id: trunk@24470 -
This commit is contained in:
parent
cd8690c197
commit
fceb6c3cc5
@ -723,6 +723,14 @@ implementation
|
|||||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(paraspec));
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(paraspec));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure write_def_reference(def:tdef);
|
||||||
|
begin
|
||||||
|
if is_void(def) or is_objc_class_or_protocol(def) then
|
||||||
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(nil))
|
||||||
|
else
|
||||||
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def,fullrtti)));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure write_para(parasym:tparavarsym);
|
procedure write_para(parasym:tparavarsym);
|
||||||
begin
|
begin
|
||||||
{ only store user visible parameters }
|
{ only store user visible parameters }
|
||||||
@ -745,7 +753,7 @@ implementation
|
|||||||
{ write flags for current parameter }
|
{ write flags for current parameter }
|
||||||
write_param_flag(parasym);
|
write_param_flag(parasym);
|
||||||
{ write param type }
|
{ write param type }
|
||||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(parasym.vardef,fullrtti)));
|
write_def_reference(parasym.vardef);
|
||||||
{ write name of current parameter }
|
{ write name of current parameter }
|
||||||
write_string(parasym.realname);
|
write_string(parasym.realname);
|
||||||
end;
|
end;
|
||||||
@ -826,10 +834,7 @@ implementation
|
|||||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(ProcCallOptionToCallConv[def.proccalloption]));
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(ProcCallOptionToCallConv[def.proccalloption]));
|
||||||
maybe_write_align;
|
maybe_write_align;
|
||||||
{ write result typeinfo }
|
{ write result typeinfo }
|
||||||
if is_void(def.returndef) then
|
write_def_reference(def.returndef);
|
||||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(nil))
|
|
||||||
else
|
|
||||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def.returndef,fullrtti)));
|
|
||||||
{ write parameter count }
|
{ write parameter count }
|
||||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(def.maxparacount));
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(def.maxparacount));
|
||||||
maybe_write_align;
|
maybe_write_align;
|
||||||
|
Loading…
Reference in New Issue
Block a user