瀏覽代碼

* check if a target really supports safecall before calling load_safecallresult_node

florian 2 年之前
父節點
當前提交
1b08b89b7b
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      compiler/optdfa.pas

+ 5 - 2
compiler/optdfa.pas

@@ -54,7 +54,9 @@ unit optdfa;
   implementation
 
     uses
-      globtype,constexp,
+      globtype,
+      systems,
+      constexp,
       verbose,
       symconst,symdef,symsym,
       defutil,
@@ -642,7 +644,8 @@ unit optdfa;
           begin
             if current_procinfo.procdef.proctypeoption=potype_constructor then
               resultnode:=load_self_node
-            else if current_procinfo.procdef.proccalloption=pocall_safecall then
+            else if (current_procinfo.procdef.proccalloption=pocall_safecall) and
+              (tf_safecall_exceptions in target_info.flags) then
               resultnode:=load_safecallresult_node
             else
               resultnode:=load_result_node;