mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-03 04:38:32 +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));
|
||||
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);
|
||||
begin
|
||||
{ only store user visible parameters }
|
||||
@ -745,7 +753,7 @@ implementation
|
||||
{ write flags for current parameter }
|
||||
write_param_flag(parasym);
|
||||
{ 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_string(parasym.realname);
|
||||
end;
|
||||
@ -826,10 +834,7 @@ implementation
|
||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(ProcCallOptionToCallConv[def.proccalloption]));
|
||||
maybe_write_align;
|
||||
{ write result typeinfo }
|
||||
if is_void(def.returndef) 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.returndef,fullrtti)));
|
||||
write_def_reference(def.returndef);
|
||||
{ write parameter count }
|
||||
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(def.maxparacount));
|
||||
maybe_write_align;
|
||||
|
Loading…
Reference in New Issue
Block a user