فهرست منبع

fcl-passrc: fixed resolve multi add

git-svn-id: trunk@49120 -
(cherry picked from commit c28ab0a8b80e315b1000d5b2f71ead39f3e60a4b)
Mattias Gaertner 4 سال پیش
والد
کامیت
bf2d8686ad
1فایلهای تغییر یافته به همراه5 افزوده شده و 4 حذف شده
  1. 5 4
      packages/fcl-passrc/src/pasresolver.pp

+ 5 - 4
packages/fcl-passrc/src/pasresolver.pp

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