浏览代码

* fixed another case where safecall was not ignored for targets<>windows

git-svn-id: trunk@13647 -
Jonas Maebe 16 年之前
父节点
当前提交
621ebe240e
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      compiler/pdecsub.pas

+ 4 - 2
compiler/pdecsub.pas

@@ -103,14 +103,16 @@ implementation
 
 
 {$if defined(i386)}
 {$if defined(i386)}
            { For left to right add it at the end to be delphi compatible }
            { For left to right add it at the end to be delphi compatible }
-           if pd.proccalloption in (pushleftright_pocalls+[pocall_safecall])  then
+           if (target_info.system in system_all_windows) and
+              (pd.proccalloption in (pushleftright_pocalls+[pocall_safecall])) then
              paranr:=paranr_result_leftright
              paranr:=paranr_result_leftright
            else
            else
 {$elseif defined(x86) or defined(arm)}
 {$elseif defined(x86) or defined(arm)}
            { other platforms don't have a "safecall" convention,
            { other platforms don't have a "safecall" convention,
              and never reverse the parameter pushing order
              and never reverse the parameter pushing order
            }
            }
-           if (pd.proccalloption = pocall_safecall)  then
+           if (target_info.system in system_all_windows) and
+              (pd.proccalloption = pocall_safecall)  then
              paranr:=paranr_result_leftright
              paranr:=paranr_result_leftright
            else
            else
 {$endif}
 {$endif}