fcl-passrc: fixed resolve multi add

git-svn-id: trunk@49120 -
(cherry picked from commit c28ab0a8b8)
This commit is contained in:
Mattias Gaertner 2021-04-05 10:19:14 +00:00 committed by Florian Klämpfl
parent 140e0c02a0
commit bf2d8686ad

View File

@ -12994,6 +12994,7 @@ begin
exit;
end;
Flags:=Flags-[rcNoImplicitProc,rcNoImplicitProcType];
if Bin.OpCode=eopAdd then
begin
// handle multi-adds without stack
@ -13005,10 +13006,10 @@ begin
Left:=SubBin.left;
end;
// Left is now left-most of multi add
ComputeElement(Left,LeftResolved,Flags-[rcNoImplicitProc],StartEl);
ComputeElement(Left,LeftResolved,Flags,StartEl);
repeat
SubBin:=TBinaryExpr(Left.Parent);
ComputeElement(Bin.right,RightResolved,Flags-[rcNoImplicitProc],StartEl);
ComputeElement(SubBin.right,RightResolved,Flags,StartEl);
// ToDo: check operator overloading
ComputeBinaryExprRes(SubBin,ResolvedEl,Flags,LeftResolved,RightResolved);
@ -13018,8 +13019,8 @@ begin
end
else
begin
ComputeElement(Bin.left,LeftResolved,Flags-[rcNoImplicitProc],StartEl);
ComputeElement(Bin.right,RightResolved,Flags-[rcNoImplicitProc],StartEl);
ComputeElement(Bin.left,LeftResolved,Flags,StartEl);
ComputeElement(Bin.right,RightResolved,Flags,StartEl);
// ToDo: check operator overloading
ComputeBinaryExprRes(Bin,ResolvedEl,Flags,LeftResolved,RightResolved);