浏览代码

* Fix bug #9141 and pass const params <=16 in by value.

git-svn-id: trunk@7979 -
daniel 18 年之前
父节点
当前提交
44e07cd098
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      compiler/x86_64/cpupara.pas

+ 3 - 2
compiler/x86_64/cpupara.pas

@@ -224,7 +224,8 @@ unit cpupara;
           formaldef :
             result:=true;
           recorddef :
-            result:=(varspez=vs_const) or ((target_info.system=system_x86_64_win64) and (def.size>8));
+            result:=((varspez=vs_const) and (def.size>16)) or 
+                    ((target_info.system=system_x86_64_win64) and (def.size>8));
           arraydef :
             begin
               result:=not(
@@ -240,7 +241,7 @@ unit cpupara;
           stringdef :
             result:=(tstringdef(def).stringtype in [st_shortstring,st_longstring]);
           procvardef :
-            result:=(po_methodpointer in tprocvardef(def).procoptions);
+            result:=(po_methodpointer in tprocvardef(def).procoptions) and (target_info.system=system_x86_64_win64);
           setdef :
             result:=(tsetdef(def).settype<>smallset);
         end;