mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 06:49:13 +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;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Flags:=Flags-[rcNoImplicitProc,rcNoImplicitProcType];
|
||||||
if Bin.OpCode=eopAdd then
|
if Bin.OpCode=eopAdd then
|
||||||
begin
|
begin
|
||||||
// handle multi-adds without stack
|
// handle multi-adds without stack
|
||||||
@ -13005,10 +13006,10 @@ begin
|
|||||||
Left:=SubBin.left;
|
Left:=SubBin.left;
|
||||||
end;
|
end;
|
||||||
// Left is now left-most of multi add
|
// Left is now left-most of multi add
|
||||||
ComputeElement(Left,LeftResolved,Flags-[rcNoImplicitProc],StartEl);
|
ComputeElement(Left,LeftResolved,Flags,StartEl);
|
||||||
repeat
|
repeat
|
||||||
SubBin:=TBinaryExpr(Left.Parent);
|
SubBin:=TBinaryExpr(Left.Parent);
|
||||||
ComputeElement(Bin.right,RightResolved,Flags-[rcNoImplicitProc],StartEl);
|
ComputeElement(SubBin.right,RightResolved,Flags,StartEl);
|
||||||
|
|
||||||
// ToDo: check operator overloading
|
// ToDo: check operator overloading
|
||||||
ComputeBinaryExprRes(SubBin,ResolvedEl,Flags,LeftResolved,RightResolved);
|
ComputeBinaryExprRes(SubBin,ResolvedEl,Flags,LeftResolved,RightResolved);
|
||||||
@ -13018,8 +13019,8 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
ComputeElement(Bin.left,LeftResolved,Flags-[rcNoImplicitProc],StartEl);
|
ComputeElement(Bin.left,LeftResolved,Flags,StartEl);
|
||||||
ComputeElement(Bin.right,RightResolved,Flags-[rcNoImplicitProc],StartEl);
|
ComputeElement(Bin.right,RightResolved,Flags,StartEl);
|
||||||
|
|
||||||
// ToDo: check operator overloading
|
// ToDo: check operator overloading
|
||||||
ComputeBinaryExprRes(Bin,ResolvedEl,Flags,LeftResolved,RightResolved);
|
ComputeBinaryExprRes(Bin,ResolvedEl,Flags,LeftResolved,RightResolved);
|
||||||
|
Loading…
Reference in New Issue
Block a user