فهرست منبع

* when generating the call to the extracted function reference inside the nested routine we need to use the parameters of the nested function and not those of the newly created procdef (fixes some of the test case failures with -O2)

Sven/Sarah Barth 3 سال پیش
والد
کامیت
b11366c95b
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 1
      compiler/procdefutil.pas

+ 1 - 1
compiler/procdefutil.pas

@@ -1029,7 +1029,7 @@ implementation
       fieldsym:=nil;
       fieldsym:=nil;
       if assigned(pinested) then
       if assigned(pinested) then
         begin
         begin
-          n1:=ccallnode.create(create_paras(pd),ps,capturedef.symtable,cloadnode.create(capturer,capturer.owner),[],nil);
+          n1:=ccallnode.create(create_paras(pinested.procdef),ps,capturedef.symtable,cloadnode.create(capturer,capturer.owner),[],nil);
           { captured variables cannot be in registers }
           { captured variables cannot be in registers }
           make_not_regable(tcallnode(n1).methodpointer,[ra_addr_regable,ra_addr_taken]);
           make_not_regable(tcallnode(n1).methodpointer,[ra_addr_regable,ra_addr_taken]);
         end
         end