mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 23:21:57 +02:00
fcl-passrc: fixed resolve multi add
git-svn-id: trunk@49120 -
(cherry picked from commit c28ab0a8b8
)
This commit is contained in:
parent
140e0c02a0
commit
bf2d8686ad
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user