Sfoglia il codice sorgente

* fixed another crash with the new function result handling for sysv x86-64 abi

git-svn-id: trunk@10312 -
florian 17 anni fa
parent
commit
469672cb56
1 ha cambiato i file con 11 aggiunte e 0 eliminazioni
  1. 11 0
      compiler/ncgcal.pas

+ 11 - 0
compiler/ncgcal.pas

@@ -648,6 +648,17 @@ implementation
                 else
 {$endif}
                   cg.a_load_reg_loc(current_asmdata.CurrAsmList,cgsize,location.register,funcretnode.location);
+              LOC_REFERENCE:
+                begin
+                  case funcretnode.location.loc of
+                    LOC_REGISTER:
+                      cg.a_load_ref_reg(current_asmdata.CurrAsmList,cgsize,cgsize,location.reference,funcretnode.location.register);
+                    LOC_REFERENCE:
+                      cg.g_concatcopy(current_asmdata.CurrAsmList,location.reference,funcretnode.location.reference,resultdef.size);
+                    else
+                      internalerror(200802121);
+                  end;
+                end;
               else
                 internalerror(200709085);
             end;