소스 검색

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