소스 검색

* 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;