ソースを参照

* pass dynamic array parameters of cdecl routines by value on AArch64
(like on onther platforms)
o it was passed by reference as a side effect of the fact arrays in C are
pointers, but a dynamic array already is a pointer

git-svn-id: trunk@40573 -

Jonas Maebe 6 年 前
コミット
ac8411f3cf
1 ファイル変更2 行追加1 行削除
  1. 2 1
      compiler/aarch64/cpupara.pas

+ 2 - 1
compiler/aarch64/cpupara.pas

@@ -270,7 +270,8 @@ unit cpupara;
               then indexed beyond its bounds) }
               then indexed beyond its bounds) }
           arraydef:
           arraydef:
             result:=
             result:=
-              (calloption in cdecl_pocalls) or
+              ((calloption in cdecl_pocalls) and
+               not is_dynamic_array(def)) or
               is_open_array(def) or
               is_open_array(def) or
               is_array_of_const(def) or
               is_array_of_const(def) or
               is_array_constructor(def) or
               is_array_constructor(def) or