|
@@ -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);
|