Преглед на файлове

* fixed safecall for non-LLVM after r43578

git-svn-id: trunk@43580 -
Jonas Maebe преди 5 години
родител
ревизия
ec227bb759
променени са 1 файла, в които са добавени 10 реда и са изтрити 1 реда
  1. 10 1
      compiler/hlcgobj.pas

+ 10 - 1
compiler/hlcgobj.pas

@@ -5211,8 +5211,17 @@ implementation
     end;
 
   procedure thlcgobj.gen_load_loc_function_result(list: TAsmList; vardef: tdef; const l: tlocation);
+    var
+      safecallretpara: tcgpara;
     begin
-      gen_load_loc_cgpara(list,vardef,l,current_procinfo.procdef.funcretloc[calleeside]);
+      if not current_procinfo.procdef.generate_safecall_wrapper then
+        gen_load_loc_cgpara(list,vardef,l,current_procinfo.procdef.funcretloc[calleeside])
+      else
+        begin
+          safecallretpara:=paramanager.get_safecallresult_funcretloc(current_procinfo.procdef,calleeside);
+          gen_load_loc_cgpara(list,vardef,l,safecallretpara);
+          safecallretpara.resetiftemp;
+        end;
     end;
 
   procedure thlcgobj.gen_load_loc_cgpara(list: TAsmList; vardef: tdef; const l: tlocation; const cgpara: tcgpara);