ソースを参照

* 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 2 年 前
コミット
b11366c95b
1 ファイル変更1 行追加1 行削除
  1. 1 1
      compiler/procdefutil.pas

+ 1 - 1
compiler/procdefutil.pas

@@ -1029,7 +1029,7 @@ implementation
       fieldsym:=nil;
       if assigned(pinested) then
         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 }
           make_not_regable(tcallnode(n1).methodpointer,[ra_addr_regable,ra_addr_taken]);
         end