|
@@ -1145,8 +1145,8 @@ implementation
|
|
|
pd:=tprocdef(symtableprocentry.ProcdefList[0]);
|
|
|
{ both the normal and specified resultdef either have to be returned via a }
|
|
|
{ parameter or not, but no mixing (JM) }
|
|
|
- if paramanager.ret_in_param(typedef,pd.proccalloption) xor
|
|
|
- paramanager.ret_in_param(pd.returndef,pd.proccalloption) then
|
|
|
+ if paramanager.ret_in_param(typedef,pd) xor
|
|
|
+ paramanager.ret_in_param(pd.returndef,pd) then
|
|
|
internalerror(2001082911);
|
|
|
end;
|
|
|
|
|
@@ -1161,8 +1161,8 @@ implementation
|
|
|
pd:=tprocdef(symtableprocentry.ProcdefList[0]);
|
|
|
{ both the normal and specified resultdef either have to be returned via a }
|
|
|
{ parameter or not, but no mixing (JM) }
|
|
|
- if paramanager.ret_in_param(typedef,pd.proccalloption) xor
|
|
|
- paramanager.ret_in_param(pd.returndef,pd.proccalloption) then
|
|
|
+ if paramanager.ret_in_param(typedef,pd) xor
|
|
|
+ paramanager.ret_in_param(pd.returndef,pd) then
|
|
|
internalerror(200108291);
|
|
|
end;
|
|
|
|
|
@@ -1990,7 +1990,7 @@ implementation
|
|
|
{ A) set the appropriate objc_msgSend* variant to call }
|
|
|
|
|
|
{ record returned via implicit pointer }
|
|
|
- if paramanager.ret_in_param(resultdef,procdefinition.proccalloption) then
|
|
|
+ if paramanager.ret_in_param(resultdef,procdefinition) then
|
|
|
begin
|
|
|
if not(cnf_inherited in callnodeflags) then
|
|
|
msgsendname:='OBJC_MSGSEND_STRET'
|
|
@@ -2287,7 +2287,7 @@ implementation
|
|
|
|
|
|
{ when it is not passed in a parameter it will only be used after the
|
|
|
function call }
|
|
|
- if not paramanager.ret_in_param(resultdef,procdefinition.proccalloption) then
|
|
|
+ if not paramanager.ret_in_param(resultdef,procdefinition) then
|
|
|
begin
|
|
|
result:=true;
|
|
|
exit;
|
|
@@ -2363,7 +2363,7 @@ implementation
|
|
|
(
|
|
|
(cnf_do_inline in callnodeflags) or
|
|
|
is_managed_type(resultdef) or
|
|
|
- paramanager.ret_in_param(resultdef,procdefinition.proccalloption)
|
|
|
+ paramanager.ret_in_param(resultdef,procdefinition)
|
|
|
) then
|
|
|
begin
|
|
|
{ Optimize calls like x:=f() where we can use x directly as
|
|
@@ -2395,8 +2395,8 @@ implementation
|
|
|
{ if a managed type is returned by reference, assigning something
|
|
|
to the result on the caller side will take care of decreasing
|
|
|
the reference count }
|
|
|
- if paramanager.ret_in_param(resultdef,procdefinition.proccalloption) then
|
|
|
- include(ttempcreatenode(temp).tempinfo^.flags,ti_nofini);
|
|
|
+ if paramanager.ret_in_param(resultdef,procdefinition) then
|
|
|
+ include(temp.tempinfo^.flags,ti_nofini);
|
|
|
add_init_statement(temp);
|
|
|
{ When the function result is not used in an inlined function
|
|
|
we need to delete the temp. This can currently only be done by
|
|
@@ -3583,7 +3583,7 @@ implementation
|
|
|
{ get a register for the return value }
|
|
|
if (not is_void(resultdef)) then
|
|
|
begin
|
|
|
- if paramanager.ret_in_param(resultdef,procdefinition.proccalloption) then
|
|
|
+ if paramanager.ret_in_param(resultdef,procdefinition) then
|
|
|
begin
|
|
|
expectloc:=LOC_REFERENCE;
|
|
|
end
|